QImage из потока данных - PullRequest
       20

QImage из потока данных

1 голос
/ 23 февраля 2010

Я использую библиотеку 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-архива.)

1 Ответ

3 голосов
/ 23 февраля 2010

Tnx в peppe из #qt на irc.freenode.net:

Решение состоит в том, чтобы явно включить длину буфера. Игнорирование нескольких типов ввода unsigned char до char и других деталей, что я должен был использовать, это что-то вроде:

QImage image = QImage::fromData(buffer, sizeOfFile);
...