1

YUV 420(144x176)ファイルがあり、そこから最初のフレームを読み取り、そのYUVコンポーネントをRGB配列int rgb[HEIGHT*WIDTH*3];に変換しました。このファイルには、R1G1B1...RnGnBnが格納されていstd::vector<unsigned char> image; image.resize(width * height * 4);ます。私の質問はunsigned error = lodepng::encode(filename, image, width, height);、エラーなしで処理してPNGファイルを生成するが、このファイルは元の画像のようにも見えない場合、RGBしか使用していないのにRGBAを使用していると思いますが、どのように修正しますか?

PSこれは^情報で十分かどうかわからないので、いいえの場合は教えてください。

4

1 に答える 1

1

さて、この質問は今すぐ終了する必要があります。私が行ったのは、次のように、4 番目の位置にアルファとして 255 を追加したことだけです。

if (i%3==0 && i != 0)
            image[k++] = 255;
        image[k] = rgb[i];

PS私が見逃したもう1つの重要なことは、YUVファイルから読み取るときにピクセルを実際の位置に配置することです。つまり、Wikiの図に示されているように。YUV で問題が発生する場合は、これに注意してください。

于 2012-12-12T13:59:18.130 に答える