На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Функция picexLoadTiffToRstAndCompressEx

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1 2 След.
RSS
Функция picexLoadTiffToRstAndCompressEx
 
Добрый день.
При передаче в функцию picexLoadTiffToRstAndCompressEx карты geotiff больше примерно 200 мб функция завершается с ошибкой "алгоритм сжатия не поддерживается lzw". Во вложении (https://drive.google.com/file/d/1WHnCRs0CNESCwARFWE8abmS2U2n_5ZBi/view?usp=sharing) пример с исходными кодами. Там есть карты. 1я SPB-1 при передаче функции выдает ошибку. 2я SPB-1obrez та же карта, немного обрезанная конвертируется без проблем. ГИС Конструктор FREE для Qt Designer (версия 13.1.1, Qt 5, ОС на базе Linux (сборка ПАО "ПНППК"), платформа ARM Cortex-A9 )
 
Цитата
Nikita Sarychev написал:
Добрый день.При передаче в функцию picexLoadTiffToRstAndCompressEx карты geotiff больше примерно 200 мб функция завершается с ошибкой "алгоритм сжатия не поддерживается lzw". Во вложении ( https://drive.google.com/file/d/1WHnCRs0CNESCwARFWE8abmS2U2n_5ZBi/view?usp=sharing ) пример с исходными кодами. Там есть карты. 1я SPB-1 при передаче функции выдает ошибку. 2я SPB-1obrez та же карта, немного обрезанная конвертируется без проблем. ГИС Конструктор FREE для Qt Designer (версия 13.1.1, Qt 5, ОС на базе Linux (сборка ПАО "ПНППК"), платформа ARM Cortex-A9 )
Добрый день!
С вопросом разбираемся, спасибо!
 

Здравствуйте!

Провели тестирование указанного поведения на собственных данных.
При попытке скачать предоставленные данные, похоже, ссылка является недействительной.
Не могли бы Вы, пожалуйста, прислать актуальную ссылку на данные.
При необходимости данные можно прислать на почту panorama@gisinfo.ru с ссылкой на сообщение с форума.

 
https://drive.google.com/file/d/1WHnCRs0CNESCwARFWE8abmS2U2n_5ZBi/view?usp=sharing
 

Здравствуйте!

Импорт файлов tiff c сжатием LZW происходит через функции импорта, использующие библиотеку gdal, например, picexLoadGdalFileToRswAndCompressPro(mappicex.h).

Код
// Загрузка растровых данных посредством библиотеки GDAL
// обрабатываются файлы графических форматов (IMG, PNG, GIF)
//    Map - карта,содержащая векторные данные
//    inputname - имя загружаемого файла
//    rstname   - имя RST-файла
//    meterInElementX - размер в метрах элемента по X
//    meterInElementY - размер в метрах элемента по Y
//    point     - точка привязки растра (в метрах)
//                (положение юго-западного угла растра в районе)
//    Handle - диалог визуального сопровождения процесса обработки.
//    compression - флаг использования сжатия при формировании RST-файла (0/1)
//    flagMessage - параметр не используется
//                Управление диагностическими сообщениями осуществляется
//                вызовом функции mapMessageEnable.
//                Если mapIsMessageEnable() возвращает 0, то
//                диагностические сообщения не выдаются.
//    flagWorkLog - флаг ведения журнала
//                (при ==1, выполняется ведения журнала
//                при == 0, не выполняется ведения журнала)
//    flagIgnoreGeoTiff - (0/1) флаг игнорирования тегов, содержащих привязку и СК
//    flagIgnoreGeoTag  - (0/1) флаг игнорирования тегов, содержащих привязку и СК
//                 0 - привязка и СК считываются из тега
//                 исходного файла и устанавливаются в выходной растр
//                 1 - привязка устанавливается в выходной растр из
//                 аргумента point, СК не устанавливается
//    При ошибке возвращает ноль
//    Диалогу визуального сопровождения процесса обработки посылаются
//    сообщения:
//    -  (WM_PROGRESSBAR) Извещение об изменении состония процесса
//       WPARAM - текущее состоние процесса в процентах (0% - 100%)
//       Если функция-отклик возвращает WM_PROGRESSBAR, то процесс завершается.
//
//    -  (WM_ERROR) Извещение об ошибке
//       LPARAM - указатель на структуру ERRORINFORMATION
//       Структура ERRORINFORMATION описана в picexprm.h,
//       WM_PROGRESSBAR и WM_ERROR - в maptype.h


_PICIMP long int _PICAPI picexLoadGdalFileToRswPro(
                                                 const WCHAR* inputname,
                                                 const WCHAR* rstname,
                                                 double* meterInPixelX,
                                                 double* meterInPixelY,
                                                 DOUBLEPOINT *point,
                                                 long int compression,
                                                 long int compressJpegQuality,
                                                 EVENTSTATE callevent,
                                                 void* eventparm);

_PICIMP long int _PICAPI picexLoadGdalFileToRswAndCompressPro(HMESSAGE handle,
                                                 const WCHAR* inputname,
                                                 const WCHAR* rstname,
                                                 double* meterInPixelX,
                                                 double* meterInPixelY,
                                                 DOUBLEPOINT *point,
                                                 long int compression,
                                                 long int compressJpegQuality,
                                                 long int flagIgnoreGeoTag,
                                                 EVENTSTATE callevent,
                                                 void* eventparm);

 
Цитата
Константин Ганюшин написал:
Здравствуйте!  Импорт файлов tiff c сжатием LZW происходит через функции импорта, использующие библиотеку gdal, например, picexLoadGdalFileToRswAndCompressPro(mappicex.h).  
Код
 // Загрузка растровых данных посредством библиотеки GDAL
// обрабатываются файлы графических форматов (IMG, PNG, GIF)
//    Map - карта,содержащая векторные данные
//    inputname - имя загружаемого файла
//    rstname   - имя RST-файла
//    meterInElementX - размер в метрах элемента по X
//    meterInElementY - размер в метрах элемента по Y
//    point     - точка привязки растра (в метрах)
//                (положение юго-западного угла растра в районе)
//    Handle - диалог визуального сопровождения процесса обработки.
//    compression - флаг использования сжатия при формировании RST-файла (0/1)
//    flagMessage - параметр не используется
//                Управление диагностическими сообщениями осуществляется
//                вызовом функции mapMessageEnable.
//                Если mapIsMessageEnable() возвращает 0, то
//                диагностические сообщения не выдаются.
//    flagWorkLog - флаг ведения журнала
//                (при ==1, выполняется ведения журнала
//                при == 0, не выполняется ведения журнала)
//    flagIgnoreGeoTiff - (0/1) флаг игнорирования тегов, содержащих привязку и СК
//    flagIgnoreGeoTag  - (0/1) флаг игнорирования тегов, содержащих привязку и СК
//                 0 - привязка и СК считываются из тега
//                 исходного файла и устанавливаются в выходной растр
//                 1 - привязка устанавливается в выходной растр из
//                 аргумента point, СК не устанавливается
//    При ошибке возвращает ноль
//    Диалогу визуального сопровождения процесса обработки посылаются
//    сообщения:
//    -  (WM_PROGRESSBAR) Извещение об изменении состония процесса
//       WPARAM - текущее состоние процесса в процентах (0% - 100%)
//       Если функция-отклик возвращает WM_PROGRESSBAR, то процесс завершается.
//
//    -  (WM_ERROR) Извещение об ошибке
//       LPARAM - указатель на структуру ERRORINFORMATION
//       Структура ERRORINFORMATION описана в picexprm.h,
//       WM_PROGRESSBAR и WM_ERROR - в maptype.h


_PICIMP long int _PICAPI picexLoadGdalFileToRswPro(
                                                 const WCHAR* inputname,
                                                 const WCHAR* rstname,
                                                 double* meterInPixelX,
                                                 double* meterInPixelY,
                                                 DOUBLEPOINT *point,
                                                 long int compression,
                                                 long int compressJpegQuality,
                                                 EVENTSTATE callevent,
                                                 void* eventparm);

_PICIMP long int _PICAPI picexLoadGdalFileToRswAndCompressPro(HMESSAGE handle,
                                                 const WCHAR* inputname,
                                                 const WCHAR* rstname,
                                                 double* meterInPixelX,
                                                 double* meterInPixelY,
                                                 DOUBLEPOINT *point,
                                                 long int compression,
                                                 long int compressJpegQuality,
                                                 long int flagIgnoreGeoTag,
                                                 EVENTSTATE callevent,
                                                 void* eventparm); 
Здравствуйте. Вы смотрели исходники? Я ставлю 0 в методе сжатия при вызове функции. Я специально пример приложил.  
 
В итоге получается, что
во первых если вызывать функцию без сжатия, она всё равно выдаёт сообщение о невозможности сжать по методу LZW, во вторых в функции picexLoadTiffToRstAndCompressEx есть возможность выбрать сжатие по методу LZW, но он не работает и по методу jpg тоже
 
Выводимое сообщение о методе сжатия LZW относится к исходному файлу.
Для диагностики можно воспользоваться утилитой tiffinfo:
Код
iffinfo testPack/SPB-1.tif 
TIFFReadDirectory: Warning, Unknown field with tag 33550 (0x830e) encountered.
TIFFReadDirectory: Warning, Unknown field with tag 33922 (0x8482) encountered.
TIFFReadDirectory: Warning, Unknown field with tag 34735 (0x87af) encountered.
TIFFReadDirectory: Warning, Unknown field with tag 34737 (0x87b1) encountered.
TIFF Directory at offset 0x11d8a6a6 (299411110)
  Image Width: 11265 Image Length: 8611
  Bits/Sample: 8
  Compression Scheme: LZW
  Photometric Interpretation: RGB color
  Orientation: row 0 top, col 0 lhs
  Samples/Pixel: 3
  Rows/Strip: 1
  Planar Configuration: single image plane
  Software: SAS.Planet with LIBTIFF, Version 4.0.10
Copyright (c) 1988-1996 Sam Leffler
Copyright (c) 1991-1996 Silicon Graphics, Inc
 
Я все равно не понял почему функция не работает. В функции picexLoadTiffToRstAndCompressEx можно выбрать метод сжатия. Это метод которым Панорама будет сжимать растр или как это понимать? Я пробовал и с LZW и без. Дайте развернутый ответ и рекомендации.  
 

Во входном файле tiff данные записаны со сжатием LZW, на что указывает вывод команды tiffinfo.
Для разжатия данных по алгоритму LZW в процессе необходимо воспользоваться одной из функций, использующих библиотеку gdal (например, picexLoadGdalFileToRswAndCompressPro).

В параметрах функции picexLoadTiffToRstAndCompressEx указывается метод сжатия для выходного файла.

Страницы: 1 2 След.
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности