我正在重构一个项目中的一些代码,该项目需要我读取 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)
);
生成的像素图似乎是垃圾图像。可能是因为屏幕深度是 16,而我的 png 图像是 24bit RGB。
谁能建议用图像的原始字节创建像素图的最佳方法是什么。
谢谢, 阿比奈