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