a
    ak                     @   sh   d dl mZ d dlZd dlZd dlmZmZmZm	Z	 de_
d dlmZmZ ddlmZ G dd	 d	ZdS )
    )removeN)ImageImageOps	ImageFile
ImageColorT)get_resources_data_pathget_full_path   )BGHelperc                   @   sF   e Zd Zdd ZedddZedddZdd	 Zed
ddZ	dS )BGModifierApic                 C   s   d S )N )selfr   r   c/var/www/html/photolab-dontdelete/python-photolab-01/do_photo_editor/bg_modifier/bg_modifier_api.py__init__   s    zBGModifierApi.__init__)magicc                 C   sx   t |}td t|}td tt|d}td |	| |j
d urltd | j|||d td d S )Nznp.from donezremove(f) doneZRGBAzoutput image doneZcoming)
input_pathoutput_pathr   z	save done)npfromfileprintr   r   openioBytesIOconvertsavebg_typecreate_bg_image)r   r   r   r   fresultimgr   r   r   	bg_remove   s    


zBGModifierApi.bg_removec                 C   s  |}|j }d}zpt|N}|j\}}	|dkrt|jd  t|jd }t|F}
|
j\}}d}|
||	f}
|
j	|||d |

| W d    n1 s0    Y  n|dkr^td|j |j}z\td||	ft|.}
d}|
j	|||d |

| W d    n1 s 0    Y  W n0 ty\ } ztd	| W Y d }~n
d }~0 0 W d    n1 st0    Y  W n2 ty } ztd
d| W Y d }~n
d }~0 0 d S )Nz#FFFFFFbg_img/r   r   )imZboxmaskcolorzcolor:ZRGBErrorzcannot create thumbnail forinfile)r   r   r   sizer   bg_srcsplitr   ZresizeZpaster   newr   Zgetrgb	ExceptionOSError)r   r   r   r   Zorg_img_pathtyper*   r$   fg_wfg_hr!   bg_wbg_hoffseterrr   r   r   r      s:    

*
.
:"zBGModifierApi.create_bg_imagec                 C   s:   d}||kr6z|| d || d f}W n   Y n0 |S )Nr#      r   )r   r2   r3   r0   r1   r4   r   r   r   find_xyM   s    zBGModifierApi.find_xy)returnc                 C   s    t jt|||d| |S )N)Zborderfill)r   expandr   r   r   )r   r   r   border_widthborder_color_valuer   r   r   add_border_to_imageW   s    z!BGModifierApi.add_border_to_imageN)
__name__
__module____qualname__r   r
   r    r   r7   strr=   r   r   r   r   r      s
   0
r   )Zrembg.bgr   Znumpyr   r   ZPILr   r   r   r   ZLOAD_TRUNCATED_IMAGESutils.files_libr   r   m_data_helperr
   r   r   r   r   r   <module>   s   