Pillow ImageWin模塊(僅限Windows)

2021-07-15 17:32 更新

這個(gè) ?ImageWin?模塊包含在Windows上創(chuàng)建和顯示圖像的支持。

ImageWin可以與pythonwin和其他用戶界面工具包一起使用,這些工具包提供對(duì)Windows設(shè)備上下文或窗口句柄的訪問。例如,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(fā)”、“p”或“rgb”之一。

如果顯示需要調(diào)色板,則此構(gòu)造函數(shù)創(chuàng)建合適的調(diào)色板并將其與圖像關(guān)聯(lián)。對(duì)于“L”圖像,分配128個(gè)灰度級(jí)。對(duì)于“rgb”圖像,使用6x6x6顏色立方體和20灰度。

要確保調(diào)色板在Windows下正常工作,必須調(diào)用 ?palette ?方法處理來自Windows的某些事件。

參數(shù)
  • image -- PIL圖像或模式字符串。如果使用模式字符串,還必須給出大小。模式可以是“1”、“l(fā)”、“p”或“rgb”之一。

  • size -- 如果第一個(gè)參數(shù)是mode字符串,則定義圖像的大小。

?draw(handledstsrc=None)?

與Expose相同,但允許您指定在何處繪制圖像,以及要繪制圖像的哪個(gè)部分。

目標(biāo)區(qū)域和源區(qū)域以四元組矩形給出。如果省略源,則復(fù)制整個(gè)圖像。如果源和目標(biāo)的大小不同,則會(huì)根據(jù)需要調(diào)整圖像的大小。

?expose(handle)?

將位圖內(nèi)容復(fù)制到設(shè)備上下文。

參數(shù)

handle -- 設(shè)備上下文(hdc),強(qiáng)制轉(zhuǎn)換為python整數(shù),或者h(yuǎn)dc或hwnd實(shí)例。在pythonwin中,你可以使用 CDC.GetHandleAttrib() 找到合適的句柄。

?frombytes(buffer)?

從字節(jié)數(shù)據(jù)加載顯示內(nèi)存內(nèi)容。

參數(shù)

buffer -- 包含顯示數(shù)據(jù)(通常是從 tobytes() 返回的數(shù)據(jù))

?paste(imbox=None)?

將pil圖像粘貼到位圖圖像中。

參數(shù)
  • im -- PIL圖像。大小必須與目標(biāo)區(qū)域匹配。如果模式不匹配,圖像將轉(zhuǎn)換為位圖圖像的模式。

  • box -- 定義左、上、右和下像素坐標(biāo)的四元組。見 坐標(biāo)系 . 如果給出的不是元組而是一個(gè)元組,則假定所有圖像。

?query_palette(handle)?

在給定的設(shè)備上下文中安裝與圖像關(guān)聯(lián)的調(diào)色板。

此方法應(yīng)在 Windows 的 querynewpalettechfaring 事件和 QUERYNEWPALETTE 事件上調(diào)用。如果此方法返回一個(gè)非零值,則會(huì)更改一個(gè)或多個(gè)顯示面板條目,并且應(yīng)該重新繪制圖像。

參數(shù)

handle -- 設(shè)備上下文(hdc),強(qiáng)制轉(zhuǎn)換為python整數(shù),或者h(yuǎn)dc或hwnd實(shí)例。

返回

如果更改了一個(gè)或多個(gè)條目,則為?True?(這表示應(yīng)重新繪制圖像)。

?tobytes()?

將顯示內(nèi)存內(nèi)容復(fù)制到bytes對(duì)象。

返回

包含顯示數(shù)據(jù)的字節(jié)對(duì)象。

?classPIL.ImageWin.HDC(dc)?

包裝一個(gè)HDC整數(shù)。結(jié)果對(duì)象可以傳遞給 draw() 和 expose() 方法。

?classPIL.ImageWin.HWND(wnd)?

包裝hwnd整數(shù)。結(jié)果對(duì)象可以傳遞給 draw() 和 expose() 方法,而不是DC。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)