0

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

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

我知道 function gdk_pixbuf_new_from_file(),但我没有得到文件名(并且无法更改它,因为它位于库的非操作系统特定部分中)。我只得到原始数据。

我看到了这个手册条目,我想我可以使用gdk_pixbuf_new_from_data(),但这需要你知道图像的行步长,我不确定如何获得它。

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

4

1 回答 1

1

您想使用以下功能:

int stride = cairo_format_stride_for_width(CAIRO_FORMAT_RGB24, ImageWidth);
于 2016-07-06T02:29:54.063 回答