Russian Qt Forum
Октябрь 01, 2024, 16:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: TIFF в Qt3.3.3 MCBC && TiffIO  (Прочитано 5737 раз)
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. Фотку прикреплять не буду Подмигивающий
Записан
Rcus
Гость
« Ответ #1 : Октябрь 07, 2008, 03:02 »

Думаю вас заинтересует документация по libtiff
Tile-oriented Image I/O
« Последнее редактирование: Октябрь 07, 2008, 07:47 от Rcus » Записан
TukiNov
Гость
« Ответ #2 : Октябрь 08, 2008, 10:15 »

Думаю вас заинтересует документация по libtiff
Tile-oriented Image I/O
Да это я знаю Улыбающийся читал Улыбающийся тут только не все так просто Улыбающийся не догадался как потом это все в QImage преобразовать.
Пошел через GDAL. Пока полет нормальный. Пишу класс. Скоро выложу исходники. Так сказать для народа Улыбающийся
Записан
Martiro
Гость
« Ответ #3 : Октябрь 08, 2008, 15:57 »

Было бы очень интересно на эти исходники посмотреть! Подмигивающий Так как сам с этими ГИСами бьюсь. Улыбающийся Пока открываю BMP`шки больших размеров, тифы тоже скоро надо будет.
Записан
TukiNov
Гость
« Ответ #4 : Ноябрь 18, 2008, 11:52 »

Уф, что то я подзабыл выложить исходники. Терь выкладываю, написано кривовато, но все форматы TIFF'а, что у меня есть ( около 10 гигов ) и BMP Москвы читает.
Так же прилагаю пару скринов проги.
Большая просьба, если есть редкие форматы, которые не прочитаются моим классом, пожалуйста скажите Улыбающийся
Да, забыл. Все сделано с помощью библиотеки GDAL : http://www.gdal.org/
« Последнее редактирование: Ноябрь 18, 2008, 21:00 от TukiNov » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.099 секунд. Запросов: 21.