a
    "Wf	                     @   sb   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 eeddZG d	d
 d
ZdS )    N)BytesIO)settings)cached_property)Image)utilsZCKEDITOR_THUMBNAIL_SIZE)K   r   c                   @   s8   e Zd Zdd Zedd Zdd Zdd Zd	d
 ZdS )PillowBackendc                 C   s   || _ || _d S )N)file_objectstorage_engine)selfr
   r	    r   b/var/www/sistema_ama/venv/lib/python3.9/site-packages/ckeditor_uploader/backends/pillow_backend.py__init__   s    zPillowBackend.__init__c              	   C   st   z`z,t t| j   W W | jd dS  tyP   Y W | jd dS 0 W | jd n| jd 0 d S )Nr   TF)r   openr   r	   readverifyseekOSError)r   r   r   r   is_image   s    zPillowBackend.is_imagec                 C   s@   t tdd}||jtjjd}t }|j	|d|dd |S )NZCKEDITOR_IMAGE_QUALITYr   RGBJPEGT)formatqualityoptimize)
getattrr   resizesizer   
ResamplingLANCZOSconvertr   save)r   imager   Z	image_tmpr   r   r   _compress_image   s
    zPillowBackend._compress_imagec                 C   s   | j s| j|| j}|S t| j}ttdd}t|do@|j	}|rz|sz| 
|}tj|d  d}| j||}n| j}| j|| j}|s| || |S )NZCKEDITOR_FORCE_JPEG_COMPRESSIONFis_animatedr   z.jpg)r   r
   r    r	   r   r   r   r   hasattrr#   r"   ospathsplitextcreate_thumbnail)r   filepathZ
saved_pathr!   Zshould_compressr#   r	   r   r   r   save_as&   s    
zPillowBackend.save_asc                 C   s   t |}t }zt|d}W n. tyR   | j|}t|d}Y n0 |t	tj
j |j|ddd | j||S )Nr   r   T)r   r   )r   Zget_thumb_filenamer   r   r   r   
ValueErrorr
   Z	thumbnailTHUMBNAIL_SIZEr   r   r    )r   r	   	file_pathZthumbnail_filenameZthumbnail_ior!   r   r   r   r(   ;   s    
zPillowBackend.create_thumbnailN)	__name__
__module____qualname__r   r   r   r"   r*   r(   r   r   r   r   r      s   
r   )r%   ior   Zdjango.confr   Zdjango.utils.functionalr   ZPILr   Zckeditor_uploaderr   r   r,   r   r   r   r   r   <module>   s   