
    %^g                     |    d dl mZmZmZmZmZmZ d dlmZ 	 d dl	m
Z
  G d de      Zy# e$ r d dlmZ d Z
Y w xY w)	    )BlobGeometryImage	ImageTypeInterlaceTypeOrientationType)
EngineBase)get_blob_data)	b64decodec                 4    t        | j                               S N)r   base64)blobs    j/var/www/html/webapps/promises/venv/lib/python3.12/site-packages/sorl/thumbnail/engines/pgmagick_engine.pyr
   r
   
   s    ''    c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 ZddZy
)Enginec                 j    t               }|j                  |j                                t        |      S r   )r   updatereadr   )selfsourcer   s      r   	get_imagezEngine.get_image   s%    vFKKM"T{r   c                 b    |j                         }|j                         |j                         fS r   )sizewidthheight)r   imagegeometrys      r   get_image_sizezEngine.get_image_size   s&    ::<~~!222r   c                 n    t               }|j                  |       t        |      }|j                         S r   )r   r   r   isValid)r   raw_datar   ims       r   is_valid_imagezEngine.is_valid_image   s*    vH4[zz|r   c                 P    t        ||z
  ||z
  ||      }|j                  |       |S r   r   crop)r   r   xyx2y2r   s          r   _cropboxzEngine._cropbox   s+    BFBFAq1

8r   c                    |j                         }|t        j                  k(  r|j                          n|t        j                  k(  r|j                  d       n|t        j                  k(  r|j                          n|t        j                  k(  r"|j                  d       |j                          n~|t        j                  k(  r|j                  d       nY|t        j                  k(  r"|j                  d       |j                          n$|t        j                  k(  r|j                  d       |j                  t        j                         |S )N   Z   i)orientationr   TopRightOrientationflopBottomRightOrientationrotateBottomLeftOrientationflipLeftTopOrientationRightTopOrientationRightBottomOrientationLeftBottomOrientationTopLeftOrientation)r   r   r1   s      r   _orientationzEngine._orientation#   s    '')/===JJLOBBBLLOAAAJJLO>>>LLJJLO???LLOBBBLLJJLOAAALL/<<=r   c                     |j                         t        j                  t        j                  t        j                  t        j
                  fv S r   )r1   r   r8   r9   r:   r;   )r   r   s     r   _flip_dimensionszEngine._flip_dimensions9   sA      "..//2211	'
 
 	
r   c                     |dk(  r!|j                  t        j                         |S |dk(  r!|j                  t        j                         |S |S )NRGBGRAY)typer   TrueColorMatteTypeGrayscaleMatteType)r   r   
colorspaces      r   _colorspacezEngine._colorspaceA   sM    JJy334
 	 6!JJy334  Lr   c                 @    t        ||      }|j                  |       |S r   )r   scale)r   r   r   r   r   s        r   _scalezEngine._scaleJ   s    E6*Hr   c                 D    t        ||||      }|j                  |       |S r   r'   )r   r   r   r   x_offsety_offsetr   s          r   _cropzEngine._cropO   s#    E68X>

8r   Nc                     |j                  |j                  d             |j                  |       |dk(  r!|r|j                  t        j
                         t               }|j                  |       t        |      S )Nutf8JPEG)	magickencodequalityinterlaceTyper   LineInterlacer   writer
   )r   r   format_rT   
image_infoprogressiver   s          r   _get_raw_datazEngine._get_raw_dataT   s_    W^^F+,gf ; ;<vDT""r   )NF)__name__
__module____qualname__r   r    r%   r-   r=   r?   rG   rJ   rN   r[    r   r   r   r      s4    
3
,


#r   r   N)pgmagickr   r   r   r   r   r   sorl.thumbnail.engines.baser	   pgmagick._pgmagickr
   ImportErrorr   r   r   r_   r   r   <module>rd      s=    U U 2(0M#Z M#  ( ((s   * ;;