我正在努力重构项目中的一些代码,这些代码要求我读取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的最佳方法是什么。
谢谢, 阿希奈