Pillow ImageWin模块(仅限Windows)

2021-07-15 17:32 更新

这个 ​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)
classPIL.ImageWin.Dib(imagesize=None)

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

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

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

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

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

draw(handledstsrc=None)

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

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

expose(handle)

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

参数

handle -- 设备上下文(hdc),强制转换为python整数,或者hdc或hwnd实例。在pythonwin中,你可以使用 CDC.GetHandleAttrib() 找到合适的句柄。

frombytes(buffer)

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

参数

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

paste(imbox=None)

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

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

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

query_palette(handle)

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

此方法应在 Windows 的 querynewpalettechfaring 事件和 QUERYNEWPALETTE 事件上调用。如果此方法返回一个非零值,则会更改一个或多个显示面板条目,并且应该重新绘制图像。

参数

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

返回

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

tobytes()

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

返回

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

classPIL.ImageWin.HDC(dc)

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

classPIL.ImageWin.HWND(wnd)

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


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号