簡體   English   中英

相當於PIL.Image tobytes()的python gtk

[英]python gtk equivalent of PIL.Image tobytes()

gtk等於PIL.Image tobytes()?

i = PIL.Image.open('image.png')
data = i.tobytes() 

我正在嘗試使用GTK獲取屏幕並將其轉換為與以前的PIL相同的字節:

import gtk, PIL.Image

img_width = gtk.gdk.screen_width()
img_height = gtk.gdk.screen_height()
data = gtk.gdk.Pixbuf(
  gtk.gdk.COLORSPACE_RGB,
  False,
  8,
  img_width,
  img_height
)  
data.get_from_drawable(
  gtk.gdk.get_default_root_window(),
  gtk.gdk.colormap_get_system(),
  0, 0, 0, 0,
  img_width,
  img_height
)
data = data.tobytes() #<-- here trying to get bytes

您正在尋找pixbuf.get_pixels()

請注意,返回的數據可能包含填充:

圖像中的行從上到下存儲,在每一行中,像素從左到右存儲。 在一行的末尾可能會有填充。 由gdk_pixbuf_get_rowstride()返回的pixbuf的“ rowstride”值指示行之間的字節數。

(從這里開始 。)

您可以使用字符串/字節操作刪除此填充,或者使用pixbuf.save_to_callback將圖像保存為原始RGB格式,而無需填充。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM