从整数数组中显示 gtkmm 中的图像
我有一个带有灰度图像的整数数组,我需要在我的应用程序中显示它。我正在使用 gtkmm 用 C++ 进行编程,但找不到任何像画布这样允许您显示和访问图像中每个像素的小部件。
I have an integer array with a gray scale image and I need to show it in my application. I'm programing in C++ with gtkmm and I can't find any widget like a canvas that allow you to show and access each pixel in the image.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
据我了解,您需要使用以下带构造函数的类:
创建位图并将数据加载到其中。
稍后您可以使用 Gdk::Pixmap 或 Gdk::Window 进行绘制。还有Pixbuf类来存储像素。
As far as I understand you need to use the following class with constructor:
to create bitmap and load your data into it.
Later you can use Gdk::Pixmap or Gdk::Window to draw. There is also Pixbuf class to store pixels.
我也在努力寻找解决方案。到目前为止,我发现的唯一方法(使用 gtkmm-3.0)是将灰度图像逐像素转换为 RGB。
您分配了另一个数据缓冲区,其大小是原始缓冲区的三倍。然后将每个像素从原始文件复制到副本中三次。要创建 1280*1024(我的情况)pixbuf,您可以调用:
要访问位图中的像素,我想您可以使用 Gdk::Pixbuf::get_pixels()。
I am trying to find a solution as well. The only way I found so far (using gtkmm-3.0) is to convert the grayscale image to RGB, pixel by pixel.
You allocate another data buffer three times as big as the original one. Then you copy each pixel from the original to the copy, three times. To create 1280*1024 (my case) pixbuf you can call:
To access the pixels in the bitmap I suppose you can use
Gdk::Pixbuf::get_pixels()
.