Your IP : 216.73.216.213
�ʴWp � @ s� d d l m Z Gd d � d e � Z Gd d � d e � Z Gd d � d e � Z Gd d � d e � Z Gd
d � d e � Z d S)
� )�Imagec @ s. e Z d Z d Z d d � Z d d � Z d S)�HDCz�
Wraps an HDC integer. The resulting object can be passed to the
:py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose`
methods.
c C s
| | _ d S)N)�dc)�selfr � r �?/opt/alt/python35/lib64/python3.5/site-packages/PIL/ImageWin.py�__init__ s zHDC.__init__c C s | j S)N)r )r r r r �__int__ s zHDC.__int__N)�__name__�
__module__�__qualname__�__doc__r r r r r r r s r c @ s. e Z d Z d Z d d � Z d d � Z d S)�HWNDz�
Wraps an HWND integer. The resulting object can be passed to the
:py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose`
methods, instead of a DC.
c C s
| | _ d S)N)�wnd)r r r r r r * s z
HWND.__init__c C s | j S)N)r )r r r r r - s zHWND.__int__N)r
r r r
r r r r r r r $ s r c @ s� e Z d Z d Z d d d � Z d d � Z d d d � Z d d
� Z d d d � Z d
d � Z d d � Z
d d � Z d d � Z d S)�Diba&
A Windows bitmap with the given mode and size. The mode can be one of "1",
"L", "P", or "RGB".
If the display requires a palette, this constructor creates a suitable
palette and associates it with the image. For an "L" image, 128 greylevels
are allocated. For an "RGB" image, a 6x6x6 colour cube is used, together
with 20 greylevels.
To make sure that palettes work properly under Windows, you must call the
**palette** method upon certain events from Windows.
:param image: Either a PIL image, or a mode string. If a mode string is
used, a size must also be given. The mode can be one of "1",
"L", "P", or "RGB".
:param size: If the first argument is a mode string, this
defines the size of the image.
Nc C s� t | d � r3 t | d � r3 | j } | j } n | } d } | d k rZ t j | � } t j j | | � | _ | | _ | | _ | r� | j | � d S)N�mode�size�1�L�P�RGB)r r r r ) �hasattrr r r Zgetmodebase�coreZdisplay�image�paste)r r r r r r r r E s zDib.__init__c C sg t | t � rQ | j j | � } z | j j | � } Wd | j j | | � Xn | j j | � } | S)a)
Copy the bitmap contents to a device context.
:param handle: Device context (HDC), cast to a Python integer, or an
HDC or HWND instance. In PythonWin, you can use the
:py:meth:`CDC.GetHandleAttrib` to get a suitable handle.
N)�
isinstancer r �getdc�expose� releasedc)r �handler �resultr r r r T s z
Dib.exposec C s� | s d | j } t | t � rj | j j | � } z | j j | | | � } Wd | j j | | � Xn | j j | | | � } | S)am
Same as expose, but allows you to specify where to draw the image, and
what part of it to draw.
The destination and source areas are given as 4-tuple rectangles. If
the source is omitted, the entire image is copied. If the source and
the destination have different sizes, the image is resized as
necessary.
r N)r r )r r r r r �drawr )r r Zdst�srcr r r r r r! f s
zDib.drawc C sg t | t � rQ | j j | � } z | j j | � } Wd | j j | | � Xn | j j | � } | S)ae
Installs the palette associated with the image in the given device
context.
This method should be called upon **QUERYNEWPALETTE** and
**PALETTECHANGED** events from Windows. If this method returns a
non-zero value, one or more display palette entries were changed, and
the image should be redrawn.
:param handle: Device context (HDC), cast to a Python integer, or an
HDC or HWND instance.
:return: A true value if one or more entries were changed (this
indicates that the image should be redrawn).
N)r r r r �
query_paletter )r r r r r r r# | s zDib.query_palettec C sd | j � | j | j k r. | j | j � } | rM | j j | j | � n | j j | j � d S)a�
Paste a PIL image into the bitmap image.
:param im: A PIL image. The size must match the target region.
If the mode does not match, the image is converted to the
mode of the bitmap image.
:param box: A 4-tuple defining the left, upper, right, and
lower pixel coordinate. If None is given instead of a
tuple, all of the image is assumed.
N)�loadr �convertr r �im)r r&