将RGB888图像绘制到X11窗口

时间:2013-09-19 17:38:28

标签: c linux x11 xlib

我正在努力重构项目中的一些代码,这些代码要求我读取PNG图像并将其绘制到X11窗口中。我已经能够使用libpng成功读取图像文件,但我无法弄清楚如何将这些原始字节转换为Pixmap,以便其余代码可以使用Pixmap。

png图像是RGB888格式,我尝试使用XCreatePixmapFromBitmapData,如下所示

Pixmap theLogo = XCreatePixmapFromBitmapData(
                                       display,
                                       rootWindow,
                                       reinterpret_cast<char*>(png_image_data) ,
                                       png_width,
                                       png_height,
                                       BlackPixel,
                                       WhitePixel,
                                       DefaultDepth(display, screen)
                                       );

结果Pixmap似乎是垃圾图像。这可能是因为屏幕深度为16,而我的png图像为24位RGB。

有人可以建议用图像的原始字节创建Pixmap的最佳方法是什么。

谢谢, 阿希奈

0 个答案:

没有答案