Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: TukiNov от Октябрь 06, 2008, 14:19



Название: TIFF в Qt3.3.3 MCBC && TiffIO
Отправлено: TukiNov от Октябрь 06, 2008, 14:19
Приветствую всех :)
Нарисовалась проблемка :)
Ситуация вот в чем :) Занимаюсь щас ГИСами, так вот, появилась необходимость открывать и просматривать TIFF формат.
Файлы примерно по гигу - два, и разрешением около 9000 х 25000 :)
Покопался в инете нашёл libtiff которая позволяет работать с этим форматом.
Так же нашёл TiffIO, плагин для Qt который построен на базе libtiff.
Проблемка заключается в следущем:
файл открывается след образом
Код:
            // Helpfull function, that handle any LAB/CYMK color conversion as well: stick with it !
            // (But only when in 8 bps and without alpha ... too bad!)
            if( bps == 8 || (bps==16 && mode==PHOTOMETRIC_RGB && !hasAlpha) )
            {
                success &= TIFFReadRGBAImageOriented(tif, width, height, (uint32*)img.bits(), ORIENTATION_TOPLEFT);
                if( success && (TIFF2QT(0x11223344) != 0x11223344) )
                    for(uint i=0; i<width; i++)
                        for(uint j=0; j<height; ++j)
                            img.setPixel(i,j, TIFF2QT( img.pixel(i,j) ));
            }
как я понял функция TIFFReadRGBAImageOriented(tif, width, height, (uint32*)img.bits(), ORIENTATION_TOPLEFT);
сначало загружает весь файл в память и уже потом отрисовывает( в демке у мя так и не получилось отрисовать гигововый файлик )
Соответственно хотелось бы как нить вытаскивать район определённого габарита, например, 1024 х 768, и отрисовывать его.
Может кто имел дело с tiff и мог бы помочь :)
буду очень благодарен :)
http://artis.imag.fr/Software/TiffIO/SOURCES/TiffIO-130e.tgz (http://artis.imag.fr/Software/TiffIO/SOURCES/TiffIO-130e.tgz). Фотку прикреплять не буду ;)


Название: Re: TIFF в Qt3.3.3 MCBC && TiffIO
Отправлено: Rcus от Октябрь 07, 2008, 03:02
Думаю вас заинтересует документация по libtiff
Tile-oriented Image I/O (http://www.remotesensing.org/libtiff/libtiff.html#tiles)


Название: Re: TIFF в Qt3.3.3 MCBC && TiffIO
Отправлено: TukiNov от Октябрь 08, 2008, 10:15
Думаю вас заинтересует документация по libtiff
Tile-oriented Image I/O (http://www.remotesensing.org/libtiff/libtiff.html#tiles)
Да это я знаю :) читал :) тут только не все так просто :) не догадался как потом это все в QImage преобразовать.
Пошел через GDAL. Пока полет нормальный. Пишу класс. Скоро выложу исходники. Так сказать для народа :)


Название: Re: TIFF в Qt3.3.3 MCBC && TiffIO
Отправлено: Martiro от Октябрь 08, 2008, 15:57
Было бы очень интересно на эти исходники посмотреть! ;) Так как сам с этими ГИСами бьюсь. :) Пока открываю BMP`шки больших размеров, тифы тоже скоро надо будет.


Название: Re: TIFF в Qt3.3.3 MCBC && TiffIO
Отправлено: TukiNov от Ноябрь 18, 2008, 11:52
Уф, что то я подзабыл выложить исходники. Терь выкладываю, написано кривовато, но все форматы TIFF'а, что у меня есть ( около 10 гигов ) и BMP Москвы читает.
Так же прилагаю пару скринов проги.
Большая просьба, если есть редкие форматы, которые не прочитаются моим классом, пожалуйста скажите :)
Да, забыл. Все сделано с помощью библиотеки GDAL : http://www.gdal.org/