从原始位图数据创建GdkPixbuf

时间:2015-08-23 22:31:37

标签: c bitmap gdk gdkpixbuf

我正在尝试使用GDK将Clean图形库(特别是ObjectIO)移植到Linux。该库由非特定于操作系统的部分组成,由于兼容性问题我不想触摸它,以及我可以触摸的特定于操作系统的部分。

我必须实现的一个功能是从.bmp文件中获取原始数据,并且必须从中构建GdkPixbuf。该函数必须用C语言编写。

我知道函数gdk_pixbuf_new_from_file(),但我没有得到文件名(并且不能改变它,因为它在库的非特定于操作系统的部分)。我只获得原始数据。

我看到this manual entry,我想我可以使用gdk_pixbuf_new_from_data(),但这需要您知道图片的行步幅,其中我不确定如何得到它。

有没有办法让文件中的行跨步?如果没有,我看到的唯一可能性是创建一个包含数据的临时文件,然后调用gdk_pixbuf_new_from_file() - 但这真的很难看。

1 个答案:

答案 0 :(得分:1)

您想使用以下功能:

int stride = cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, ImageWidth);
相关问题