【问题标题】:show image in gtkmm from integer array从整数数组中以 gtkmm 显示图像
【发布时间】:2023-03-07 22:55:01
【问题描述】:

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

【问题讨论】:

  • 我遇到了同样的问题,想不通(不是我尝试太多,只是想为 lulz 绘制一个 mandelbrot)。有很多看似相似的像素缓冲区,文档非常少。

标签: c++ image widget gtkmm


【解决方案1】:

据我了解,您需要将以下类与构造函数一起使用:

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

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

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

【讨论】:

  • 位图适用于黑白图像,但我需要灰度;因为这可能是很好的像素图。但我的问题是我需要一种简单快捷的方法来获取和更改屏幕中的像素。
【解决方案2】:

我也在努力寻找解决方案。到目前为止,我发现的唯一方法(使用 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()

【讨论】:

    猜你喜欢
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 2017-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多