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: Image | str, size: tuple[int, int] | None = None)[source]¶
具有给定模式和大小的 Windows 位图。模式可以是“1”、“L”、“P”或“RGB”之一。
如果显示需要调色板,此构造函数将创建一个合适的调色板并将其与图像关联。对于“L”图像,将分配 128 个灰度级。对于“RGB”图像,将使用 6x6x6 彩色立方体,以及 20 个灰度级。
为了确保调色板在 Windows 下正常工作,您必须在从 Windows 收到某些事件时调用
palette
方法。- 参数:
image – PIL 图像或模式字符串。如果使用模式字符串,还必须给出大小。模式可以是“1”、“L”、“P”或“RGB”之一。
size – 如果第一个参数是模式字符串,则它定义图像的大小。
- draw(handle: int | HDC | HWND, dst: tuple[int, int, int, int], src: tuple[int, int, int, int] | None = None) None [source]¶
与 expose 相同,但允许您指定绘制图像的位置以及绘制图像的哪一部分。
目标区域和源区域都以 4 元组矩形给出。如果省略源,则复制整个图像。如果源和目标大小不同,则图像将根据需要调整大小。
- expose(handle: int | HDC | HWND) None [source]¶
将位图内容复制到设备上下文。
- 参数:
handle – 设备上下文 (HDC),转换为 Python 整数,或 HDC 或 HWND 实例。在 PythonWin 中,您可以使用
CDC.GetHandleAttrib()
来获取合适的句柄。
- paste(im: Image, box: tuple[int, int, int, int] | None = None) None [source]¶
将 PIL 图像粘贴到位图图像中。
- 参数:
im – 一个 PIL 图像。大小必须与目标区域匹配。如果模式不匹配,图像将转换为位图图像的模式。
box – 一个 4 元组,定义左上角、右下角像素坐标。参见 坐标系。如果给出 None 而不是元组,则假定所有图像。