3

我正在重构一个项目中的一些代码,该项目需要我读取 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。

谁能建议用图像的原始字节创建像素图的最佳方法是什么。

谢谢, 阿比奈

4

0 回答 0