首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python PyGObject从GdkPixbuf.get_pixels()获取像素

Python PyGObject从GdkPixbuf.get_pixels()获取像素
EN

Stack Overflow用户
提问于 2014-04-18 01:58:09
回答 2查看 1.3K关注 0票数 3

我已经用GTK+2 (pygtk)写了一个python程序。现在我想将程序更新到GTK+3,所以我必须使用pyGObject而不是pygtk。

我的问题是,我必须从GdkPixbuf.Pixbuf对象上的单个像素获取颜色。

在pygtk中,我可以只使用Pixbuf.get_pixels_array()来获得一个包含所有像素的n数组。

在pyGObject中没有Pixbuf.get_pixels_array(),所以我必须使用Pixbuf.get_pixels(),它会返回一个字符串。

有人知道如何从这个字符串中获取单独的像素吗?

(在C中,Pixbuf.get_pixels_array()返回一个指针,所以您可以这样做:http://developer.gimp.org/api/2.0/gdk-pixbuf/gdk-pixbuf-gdk-pixbuf.html#image-data,但在python中,它返回一个字符串)

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2014-04-18 04:24:35

它不是一个字符串,它是一个字节数组。您可以从list: mybyte2:4获得值(int);如果打印出来,是的,将显示chr()值。注意图像类型并检查“字符串”的长度:对于png,每个像素有4个值(RGBA),对于'RGB‘jpeg - 3,对于'L’- 1。像往常一样,这些值在0-255范围内。附注:这些值没有被分割成带,所以jpg中的像素1在索引0处具有RGB,在3,4,5处具有1,2像素2,依此类推

票数 2
EN

Stack Overflow用户

发布于 2019-02-27 22:04:31

在我对How to turn Gdk pixbuf object into numpy array问题的回答中,您可能会发现有两个函数可以在GdxPixbuf和numpy数组之间来回转换;一旦您将数据转换成numpy数组,操作起来就容易多了

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23140193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档