我在 Visual Studio 2010 中使用 CImg 与 libpng 结合来显示 png 图像。当我使用 CImg 显示图像时,它似乎无法正确显示透明度。如果这是我没有完全掌握 CImg 的概念,我正在犯的错误,或者两者兼而有之,我不会起诉!
左侧的图像显示了在 Windows 照片查看器中打开的图像 - 背景透明如预期。右边的图像显示了 CImg 显示,它实际上显示的是纯白色背景,字符周围有一些奇怪的棕色区域。
CImg 正在加载具有第 4 个 Alpha 通道的 png(如右图窗口标题所示)。将鼠标悬停在 CImg 显示中的区域上时,它会在小弹出窗口中显示正确的透明度值(右图左下角)。CImg 似乎正在绘制所有内容,无论透明度值如何?
我的问题是,如何让 Cimg 正确显示带有透明部分的 pgn?
我的这个例子的代码如下:
#define cimg_use_png
#include <CImg.h>
using namespace cimg_library;
int main()
{
CImg<unsigned char> image("image.png");
image.display();
return 0;
}