1

Qt ライブラリを使用して QImages を作成しています。

私はこのコンストラクタを使用することができます:

QImage image("example.jpg");

しかし、私はこの静的関数に問題があります:

char buffer[sizeOfFile];
ifstream inFile("example.jpg");
inFile.read(buffer, sizeOfFile);
QImage image = QImage::fromData(buffer); // error here
// but there's nothing wrong with the buffer
ofstream outFile("bufferOut.jpg");
outFile.write(buffer, sizeOfFile);

Qt がコンソールに出力する場所:

Corrupt JPEG data: 1 extraneous bytes before marker 0xd9
JPEG datastream contains no image

上記は私が持っているものとまったく同じではありませんが、それが唯一の重要な違いです。(zipアーカイブ内の画像を開くため、バッファから読み取れる必要があります。)

4

1 に答える 1

4

irc.freenode.net の #qt から peppe への Tnx:

解決策は、バッファー長を明示的に含めることです。unsigned char型キャストやその他の詳細をいくつか無視するcharと、次のようなものを使用する必要がありました。

QImage image = QImage::fromData(buffer, sizeOfFile);
于 2010-02-23T02:46:31.987 に答える