ó
N'—^c           @   s£  d  d l  m Z d  d l m Z d  d l m Z e Z d Z	 y< d  d l
 m Z m Z m Z d  d l m Z m Z d Z	 WnÃ e e f k
 r=y< d  d l m Z m Z m Z d  d l m Z m Z d Z	 Wq>e e f k
 r9y< d  d l m Z m Z m Z d  d l m Z m Z d Z	 Wq:e k
 r5e Z q:Xq>Xn Xd	 d
 „ Z d „  Z d „  Z d „  Z d „  Z e rd e f d „  ƒ  YZ n  d „  Z d „  Z d S(   iÿÿÿÿ(   t   Image(   t   isPath(   t   BytesIO(   t   QImaget   qRgbat   QPixmap(   t   QBuffert	   QIODevicet   5t   4t   sideiÿ   c         C   s   t  |  | | | ƒ d @S(   sA   (Internal) Turns an RGB color into a Qt compatible color integer.Iÿÿÿÿ    (   R   (   t   rt   gt   bt   a(    (    s-   /tmp/pip-unpacked-wheel-ivxKtu/PIL/ImageQt.pyt   rgb+   s    c         C   s¹   t  ƒ  } | j t j ƒ |  j ƒ  r8 |  j | d ƒ n |  j | d ƒ t ƒ  } y | j | j ƒ  ƒ Wn* t	 k
 r” | j t
 | j ƒ  ƒ ƒ n X| j ƒ  | j d ƒ t j | ƒ S(   ss   
    :param im: A PIL Image object, or a file name
    (given either as Python string or a PyQt string object)
    t   pngt   ppmi    (   R   t   openR   t	   ReadWritet   hasAlphaChannelt   saveR   t   writet   datat	   TypeErrort   strt   closet   seekR    (   t   imt   bufferR   (    (    s-   /tmp/pip-unpacked-wheel-ivxKtu/PIL/ImageQt.pyt
   fromqimage2   s    		
c         C   s
   t  |  ƒ S(   N(   R   (   R   (    (    s-   /tmp/pip-unpacked-wheel-ivxKtu/PIL/ImageQt.pyt   fromqpixmapL   s    c         C   sÅ   i d d 6d d 6d d 6| } | | } t  | d ƒ \ } } | | rM d n d } | d } | si |  Sg  }	 xF t t |  ƒ | ƒ D]. }
 |	 j |  |
 | |
 d | !d | ƒ q† Wd	 j |	 ƒ S(
   sE   
    converts each scanline of data from 8 bit to 32 bit aligned
    i   t   1i   t   Lt   Pi    i   s    t    (   t   divmodt   ranget   lent   appendt   join(   t   bytest   widtht   modet   bits_per_pixelt   bits_per_linet   full_bytes_per_linet   remaining_bits_per_linet   bytes_per_linet   extra_paddingt   new_datat   i(    (    s-   /tmp/pip-unpacked-wheel-ivxKtu/PIL/ImageQt.pyt
   align8to32Z   s    
,c         C   sR  d  } d  } t |  d ƒ rW t t k r? t |  j ƒ  d ƒ }  qW t |  j ƒ  d ƒ }  n  t |  ƒ ru t j |  ƒ }  n  |  j	 d k r t
 j } nz|  j	 d k rá t
 j } g  } xYt d ƒ D] } | j t | | | ƒ ƒ q» Wn)|  j	 d k rOt
 j } g  } |  j ƒ  } xü t d t | ƒ d ƒ D]$ } | j t | | | d !Œ  ƒ q$Wn» |  j	 d	 k r||  j d
 d ƒ } t
 j } nŽ |  j	 d k r÷y |  j d
 d ƒ } WnG t k
 rê|  j ƒ  \ } } } }	 t j d | | | |	 f ƒ }  n Xt
 j } n t d |  j	 ƒ ‚ | p/t |  j ƒ  |  j d |  j	 ƒ }
 i |
 d 6|  d 6| d 6| d 6S(   Nt   toUtf8s   utf-8R    R!   i   R"   i    i   t   RGBt   rawt   BGRXt   RGBAt   BGRAs   unsupported image mode %rR   R   t   formatt
   colortable(   t   Nonet   hasattrR   R)   t   unicodeR5   R   R    R   R+   R   t   Format_Monot   Format_Indexed8R%   R'   R   t
   getpaletteR&   t   tobytest   Format_RGB32t   SystemErrort   splitt   merget   Format_ARGB32t
   ValueErrorR4   t   size(   R   R   R<   R;   R3   t   paletteR   R   R   R   t   __data(    (    s-   /tmp/pip-unpacked-wheel-ivxKtu/PIL/ImageQt.pyt   _toqclass_helperw   sF    	 	%"(t   ImageQtc           B   s   e  Z d  „  Z RS(   c         C   se   t  | ƒ } t j |  | d | d j d | d j d | d ƒ | d ra |  j | d ƒ n  d S(   sò   
            An PIL image wrapper for Qt.  This is a subclass of PyQt's QImage
            class.

            :param im: A PIL Image object, or a file name (given either as Python
                string or a PyQt string object).
            R   R   i    i   R;   R<   N(   RM   R   t   __init__RJ   t   setColorTable(   t   selfR   t   im_data(    (    s-   /tmp/pip-unpacked-wheel-ivxKtu/PIL/ImageQt.pyRO   ©   s    	
(   t   __name__t
   __module__RO   (    (    (    s-   /tmp/pip-unpacked-wheel-ivxKtu/PIL/ImageQt.pyRN   §   s   c         C   s
   t  |  ƒ S(   N(   RN   (   R   (    (    s-   /tmp/pip-unpacked-wheel-ivxKtu/PIL/ImageQt.pyt   toqimage¹   s    c         C   s:   |  j  d k r! |  j d ƒ }  n  t |  ƒ } t j | ƒ S(   NR6   R9   (   R+   t   convertRU   R   t	   fromImage(   R   t   qimage(    (    s-   /tmp/pip-unpacked-wheel-ivxKtu/PIL/ImageQt.pyt	   toqpixmap½   s    N(    t   PILR    t	   PIL._utilR   t   ioR   t   Truet   qt_is_installedR=   t
   qt_versiont   PyQt5.QtGuiR   R   R   t   PyQt5.QtCoreR   R   t   ImportErrort   RuntimeErrort   PyQt4.QtGuit   PyQt4.QtCoret   PySide.QtGuit   PySide.QtCoret   FalseR   R   R   R4   RM   RN   RU   RY   (    (    (    s-   /tmp/pip-unpacked-wheel-ivxKtu/PIL/ImageQt.pyt   <module>   s:   


				/	