0

新しいので、リンクは2つしかなく、画像を投稿できません。アドレスをコピーして貼り付ける必要があり、ご不便をおかけして申し訳ありません

steinsoft.net/index.php?site=Programming/Code%20Snippets/Cpp/no8にあるものと同様のコードで Targa (.tga) 画像ファイルを解析しています

unsigned char 配列にデータを取得した後、ログに出力して手動で確認します。何らかの理由で暗い色が解析されていないようです。


シンプルな印刷コード

file.open( save );

//using while( tga.data[ i ] != NULL ) resulted in ~400,000 lines of garbage being appended
for( unsigned i = 1; i <= ( tga.width * tga.height * tga.byteCount ); i++ )
{
    if( tga.data[ i ] == NULL )
        break;

    file << ( int )tga.data[ i ] << ",";

    if( ( i % 3 ) == 0 )
        file << "\n";
}

file.close( );

暗い : http://i.stack.imgur.com/qefIA.png : http://pastebin.com/8JeJwP2w

光: http://i.stack.imgur.com/XNTIK.png : http://pastebin.com/s2sW0XfM

ご覧のとおり、画像の上部の線は、暗い色 (この例では黒) の場合は含まれませんが、明るい色 (ピンク [255,53,204]) の場合は含まれています。

なぜこれが起こっているのかについて誰かが情報を持っていますか?


スペック

Windows ビスタ

Microsoft Visual C++ 2010 プロフェッショナル

Targa は、圧縮されていない 24 ビットとして保存されます。

4

1 に答える 1

1

まず第一に、なぜあなたはdata[i]==NULL?0ピクセル(黒)がある可能性があるので、それらをすべて入れておきます。基本的に、色が0であるかどうかを確認してから、ループを終了します。値に関係なく、すべてのピクセルを読み取るだけです。

于 2011-07-04T06:17:28.873 に答える