Visual Studio 2010 で libpng と組み合わせて CImg を使用して、png 画像を表示しています。CImg を使用して画像を表示すると、透明度が正しく表示されないように見えます。これが CImg の概念を完全に理解していない、私が犯している間違い、またはその両方の組み合わせである場合、私は訴えません!
左の画像は、Windows フォト ビューアーで開いた画像を示しています。背景は予想どおり透明です。右の画像は、実際には純白の背景を表示している CImg ディスプレイを示しており、キャラクターの周りに奇妙な茶色の領域がいくつかあります。
CImg は 4 番目のアルファ チャネルで 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;
}