
    ee	                         d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZ ej                  dd       d dl
mZ  G d d      Zy)    N)BytesIO	GdkPixbufz2.0)r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)Thumbnailerc                    t        j                         }|j                  ddt        d       |j                  ddt        d       |j                  ddt        d       |j                         | _        t        j                  j                  | j                  j                        s6t        d	| j                  j                         t        j                  d
       y y )Nz-iz--inputT)typerequiredz-oz--outputz-sz--sizezFile not found    )argparseArgumentParseradd_argumentstrint
parse_argsargsospathexistsinputprintsysexit)selfparsers     ;/usr/lib/python3/dist-packages/XappThumbnailers/__init__.py__init__zThumbnailer.__init__   s    ((*D)#ED*3FD(tD%%'	ww~~diioo.#TYY__5HHQK /    c                    d }|j                  d      r| j                  |      }n 	 t        j                  j	                  |      }|r| j                  |       yy# t        j
                  t        f$ r}t        d|       Y d }~?d }~ww xY w)Nz.svgz xapp-thumbnails PIL load error: TF)	endswithsvg_to_imagePILImageopenUnidentifiedImageErrorFileNotFoundErrorr   save_pil)r   r   imges       r   	save_pathzThumbnailer.save_path   s}    == ##D)C=iinnT* MM# ..0AB =8!<<=s   A B
4BB
c                 v    t         j                  j                  t        |            }| j	                  |       y )N)r!   r"   r#   r   r&   )r   datar'   s      r   
save_byteszThumbnailer.save_bytes+   s$    iinnWT]+cr   c                    |j                   \  }}||k\  r| j                  j                   t        |      z  }t        t        |      t        |      z        }|j	                  || j                  j                   ft
        j                  j                        }n| j                  j                   t        |      z  }t        t        |      t        |      z        }|j	                  | j                  j                   |ft
        j                  j                        }	 t
        j                  j                  |      }|j                  | j                  j                  d       y # t        $ r}t        |       Y d }~@d }~ww xY w)NPNG)sizer   floatr   resizer!   r"   LANCZOSImageOpsexif_transpose	Exceptionr   saveoutput)r   r'   widthheightpercentwsizehsizer(   s           r   r&   zThumbnailer.save_pil/   s   vU?iinnuV}4Gug68E**eTYY^^4cii6G6GHCiinnuU|3Gvw79E**diinne4cii6G6GHC	,,--c2C 	!!5)  	!HH	s   E! !	E?*E::E?c                 ~   	 t         j                  j                  |      }|j                         }|j	                         }|j                         }|j                         }d}|j                         rd}t        j                  j                  |||f|d||      }|S # t        $ r}	t        d|	       Y d }	~	y d }	~	ww xY w)NRGBRGBArawz!xapp-thumbnails svg to PIL error:)r   Pixbufnew_from_file
get_pixels	get_width
get_heightget_rowstrideget_has_alphar!   r"   	frombytesr5   r   )
r   r   pixbufr+   whstridemodeimager(   s
             r   r    zThumbnailer.svg_to_imageA   s    	:%%33D9F$$&D  "A!!#A))+FD##%II''q!fdE4PEL 	:5q99	:s   BB 	B<&B77B<N)__name__
__module____qualname__r   r)   r,   r&   r     r   r   r   r      s    
"*$:r   r   )r   r   	PIL.Imager!   PIL.ImageOpsr   ior   girequire_versiongi.repositoryr   r   rR   r   r   <module>rY      s;     	   
  	   ; & #F: F:r   