从整数数组中以gtkmm显示图像

时间:2009-11-24 11:54:21

标签: c++ image widget gtkmm

我有一个带有灰度图像的整数数组,我需要在我的应用程序中显示它。我使用gtkmm在C ++中编程,我找不到任何像画布一样的小部件,允许你显示和访问图像中的每个像素。

2 个答案:

答案 0 :(得分:0)

据我了解,您需要在构造函数中使用以下类:

Gdk::Bitmap::Bitmap(const char *data, int width, int height)

创建位图并将数据加载到其中。

稍后您可以使用Gdk :: Pixmap或Gdk :: Window进行绘制。还有Pixbuf类来存储像素。

答案 1 :(得分:0)

我也想找到一个解决方案。到目前为止我找到的唯一方法(使用gtkmm-3.0)是将灰度图像逐像素地转换为RGB。

您分配的另一个数据缓冲区是原始数据缓冲区的三倍。然后将每个像素从原件复制到副本,三次。要创建1280 * 1024(我的情况)pixbuf,您可以致电:

Gdk::Pixbuf::create_from_data(copy, Gdk::COLORSPACE_RGB, false, 8, 1280, 1024, 1280*3);

要访问位图中的像素,我想您可以使用Gdk::Pixbuf::get_pixels()