我已经使用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它返回一个字符串)
感谢您的帮助。Python PyGObject从GdkPixbuf.get_pixels获取像素
1
A
回答
0
它不是一个字符串,它是一个字节数组。您可能会从列表中获取值(int):mybyte [2:4];如果你打印这个,是的,chr()值是显示的。在图像类型时要小心并检查“字符串”的长度:对于png,每个像素有4个值(RGBA),对于'RGB'jpeg - 3,对于'L' - 1'。值在范围0 -255,照常。 P.S:这些值不是以频段分割的,所以jpg中的像素1在索引0处有RGB,3,4,5处有像素2等等
相关问题
- 1. 如何使用PyGObject(Python中的Gtk3)从VTE获取文本
- 2. Python - 获取图像的白色像素
- 3. 从坐标获取像素
- 4. 从PythonMagick图像获取像素数据?
- 5. 从图像获取像素值:Matlab
- 6. 从图像中获取像素颜色
- 7. 获取像素
- 8. python dicom - 从dicom文件中获取像素值
- 9. Python - 获取素数
- 10. 获取像素 - KineticJS
- 11. 从python列表中获取元素
- 12. 在Python中从XML获取元素
- 13. FreeImage:获取像素颜色
- 14. 从html dom元素获取图像源
- 15. ITK从itk获取像素列表:: LabelObject
- 16. Unity从RectTransform获取像素坐标值
- 17. 如何从Gtk.DrawingArea获取像素?
- 18. 从uint8获取RGB像素值C++
- 19. 从Kinetic JS Image获取像素数据
- 20. 从Kinect Depth Stream获取像素颜色
- 21. 从hdc获取像素数据
- 22. 从纹理获取确切的像素
- 23. aframe:如何从画布获取像素
- 24. 从NSImage获取像素和颜色
- 25. 从CGImage获取RGB像素数据
- 26. 如何从像素获取颜色? OpenGL
- 27. 从触摸点获取单个像素
- 28. 从旋转位图获取像素Android
- 29. 从Android显示屏获取像素值?
- 30. 从子元素获取图像链接
好的......那很奇怪。我可以像这样访问各个像素,但看起来像素每行有2个额外的字节。只有当pixbuf是我的第一台显示器(768x1366)的屏幕截图时才会发生这种情况,但是不会出现在我的1050x1680显示器的屏幕截图中。即使我只连接了一台显示器。 – freundTech
我发现了更多:我认为它只适用于,如果图像的宽度可以分为4.不知道为什么。我认为这是一个错误... – freundTech
不,它不是一个错误。这可能是“大步”,但不能确定没有看到任何事情。你可以把数据放在一个PIL图像中并修改那些额外的东西,可能来自哪里? – cox