R8G8B8A8画像をR8G8B8画像に変換しようとしていますが、現在は画像がありますが、スキャンラインがたくさんあるため、1ピクセルあたりのバイト数は4バイト、32ビットです。R8G8B8A8画像をR8G8B8にコピー
イメージバッファのタイプはunsigned char [width * height * 4]で、ソースはunsigned char [width * height * 3]です。
int j = 0;
int i = 0;
for (int k = 0; k < (width*height); k++)
{
for(int b = 0; b < 3; b++)
{
dst[i + b] = src[j + b];
}
i+=3;
j+=4;
}
をそして、あなたが抱えている問題は何ですか? – molbdnilo
プラットフォームに応じて、これを行う簡単な方法があるかもしれませんが、私はWindows Imagingコンポーネントがこれを行うことを知っています。私はlibpngが同様のことをすると思います。(簡単なGoogleの検索によると、 'PNG_TRANSFORM_STRIP_ALPHA'は物事です) – Mgetz
@molbdnilo:それはやや非効率です(無関係のループ状態、' i == 3 * width * – MSalters