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()
才能找到合适的把手。
- paste(im, box=None)[源代码]
-
将pil图像粘贴到位图图像中。
- 参数
-
-
im -- PIL图像。大小必须与目标区域匹配。如果模式不匹配,图像将转换为位图图像的模式。
-
box -- 定义左、上、右和下像素坐标的四元组。见 坐标系 . 如果给出的不是元组而是一个元组,则假定所有图像。
-
- query_palette(handle)[源代码]
-
在给定的设备上下文中安装与图像关联的调色板。
应调用此方法 QUERYNEWPALETTE 和 PALETTECHANGED 来自Windows的事件。如果此方法返回非零值,则更改了一个或多个显示调色板条目,应重新绘制图像。
- 参数
-
handle -- 设备上下文(hdc),强制转换为python整数,或者hdc或hwnd实例。
- 返回
-
如果更改了一个或多个条目,则为真值(这表示应重新绘制图像)。
- tobytes()[源代码]
-
将显示内存内容复制到bytes对象。
- 返回
-
包含显示数据的字节对象。
讨论区