ImageWin 模块(仅限Windows)#

这个 ImageWin 模块包含在Windows上创建和显示图像的支持。

ImageWin可以与PythonWin和其他用户界面工具包一起使用,这些工具包提供对Windows设备上下文或窗口句柄的访问。例如,Tkinter通过winfo_id方法::

from PIL import ImageWin

dib = ImageWin.Dib(...)

hwnd = ImageWin.HWND(widget.winfo_id())
dib.draw(hwnd, xy)
class PIL.ImageWin.Dib(image, size=None)[源代码]#

具有给定模式和大小的Windows位图。模式可以是“1”、“l”、“p”或“rgb”之一。

如果显示需要调色板,则此构造函数创建合适的调色板并将其与图像关联。对于“L”图像,分配128个灰度级。对于“rgb”图像,使用6x6x6颜色立方体和20灰度。

若要确保调色板在Windows下正常工作,必须调用 palette 方法处理来自Windows的某些事件。

参数:
  • image -- PIL图像或模式字符串。如果使用模式字符串,还必须给出大小。模式可以是“1”、“l”、“p”或“rgb”之一。

  • size -- 如果第一个参数是模式字符串,则定义图像的大小。

draw(handle, dst, src=None)[源代码]#

与Expose相同,但允许您指定在何处绘制图像,以及要绘制图像的哪个部分。

目标区域和源区域以四元组矩形给出。如果省略源,则复制整个图像。如果源和目标的大小不同,则会根据需要调整图像的大小。

expose(handle)[源代码]#

将位图内容复制到设备上下文。

参数:

handle -- 设备上下文(HDC),转换为Python整数或HDC或HWND实例。在PythonWin中,您可以使用 CDC.GetHandleAttrib() 才能找到合适的把手。

frombytes(buffer)[源代码]#

从字节数据加载显示内存内容。

参数:

buffer -- 包含显示数据(通常是从 tobytes()

paste(im, box=None)[源代码]#

将pil图像粘贴到位图图像中。

参数:
  • im -- PIL图像。大小必须与目标区域匹配。如果模式不匹配,图像将转换为位图图像的模式。

  • box -- 定义左、上、右和下像素坐标的四元组。见 坐标系 . 如果给出的不是元组而是一个元组,则假定所有图像。

query_palette(handle)[源代码]#

在给定的设备上下文中安装与图像关联的调色板。

应调用此方法 QUERYNEWPALETTEPALETTECHANGED 来自Windows的事件。如果此方法返回非零值,则更改了一个或多个显示调色板条目,应重新绘制图像。

参数:

handle -- 设备上下文(hdc),强制转换为python整数,或者hdc或hwnd实例。

返回:

如果更改了一个或多个条目,则为真值(这表示应重新绘制图像)。

tobytes()[源代码]#

将显示内存内容复制到bytes对象。

返回:

包含显示数据的字节对象。

class PIL.ImageWin.HDC(dc)[源代码]#

包装一个HDC整数。结果对象可以传递给 draw()expose() 方法。

class PIL.ImageWin.HWND(wnd)[源代码]#

包装hwnd整数。结果对象可以传递给 draw()expose() 方法,而不是DC。