Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: air от Ноябрь 14, 2006, 09:34



Название: Вывод изображения через QDataStream
Отправлено: air от Ноябрь 14, 2006, 09:34
Народ! Подскажите, как реализовать вывод изображения через QDataStream, если имеется файл своего формата, который содержит в себе паспорт и непосредственно само цифровое изображение. Длина паспорта в байтах известна.


Название: Вывод изображения через QDataStream
Отправлено: Dendy от Ноябрь 14, 2006, 14:23
Если изображение в одном из форматов, с которьІми работает Qt, то:

Код:
QFile file( "myimage" );
file.open( QIODevice::ReadOnly );
file.seek( image_offset );
QImage image = QImageReader( &file ).read();


Название: Вывод изображения через QDataStream
Отправлено: Martiro от Ноябрь 24, 2006, 09:42
У меня похожая задача, но проще. Подскажите, как открыть графический файл (формат *.bmp) используя QDataStream? Версия Qt 3.3.3.


Название: Вывод изображения через QDataStream
Отправлено: bigirbis от Ноябрь 24, 2006, 15:28
Цитировать
У меня похожая задача, но проще. Подскажите, как открыть графический файл (формат *.bmp) используя QDataStream? Версия Qt 3.3.3.

Хелпа по Qt3 нет, но скорее всего:
Код:
QFile f( "file.bmp" );
if( file.open( QIODevice::ReadOnly ) )
{
 QDataStream( &file );
 ...
}


Название: Вывод изображения через QDataStream
Отправлено: Dendy от Ноябрь 24, 2006, 18:17
QDataStream - обёртка над QIODevice'ом для платформонезависимого перегона данньІх в типьІ. Если в QDataStream лежит картинка в одном из форматов, что понимает загрузчик картинок Qt (bmp, png, jpeg, xmp, ...) - то читать нужно непосредственноиз девайса:

Код:
QImage image;
image.load( data_stream.device() );


либо

Код:
QImageReader reader( data_stream.device() );
QImage image = reader.read();