SASGIS - SAS.Планета
View Issue Details
0003911SAS.Планета[All Projects] Багpublic12-04-2025 06:1012-04-2025 07:54
zed 
zed 
normalminoralways
resolvedfixed 
250404 
2512xx2512xx 
0003911: x64: При сохранении тайлов в формат WEBP они сохраняются в формате JPEG XR
Актуально только для 64-х битной версии сборки, под win32 все сохраняется правильно.
No tags attached.
Issue History
12-04-2025 06:10zedNew Issue
12-04-2025 06:10zedStatusnew => assigned
12-04-2025 06:10zedAssigned To => zed
12-04-2025 07:51zedNote Added: 0020534
12-04-2025 07:54zedStatusassigned => resolved
12-04-2025 07:54zedFixed in Version => 2512xx
12-04-2025 07:54zedResolutionopen => fixed

Notes
(0020534)
zed   
12-04-2025 07:51   
Проблема оказалась в libfreeimage-3.dll из поставки MSYS2: они применяют патч для отключения одного из форматов (FIF_FAXG3 с id = 27) в целях безопасности, но отключение это сделано без сохранения обратной совместимости. Т.е. ID всех форматов, следующих за отключенным, уменьшились на 1: у WEBP он был 35, стал 34. Следующим шёл формат JPEG-XR с id 36, который после патча превратился в 35. Вот в SAS и получилась каша.

Переделал код SAS таким образом, чтобы больше не полагаться на фиксированные значения ID. Теперь, для каждого формата ID будет определяться динамически, по имени формата (PNG, WEBP и т.д.), что должно избавить от любых дальнейших проблем с путаницей ID.

Что касается существующего неправильного кэша в этом формате (если были карты в webp), то 64-х битная версия SAS продолжит его читать как и прежде, но для использования кэша в 32-х битной версии, и для избежания проблем в будущем, лучше всего конвертировать его в PNG или BMP (без потери качества), а потом обратно, уже в настоящий WEBP. Операцию производить в 64-х битной версии, т.к. 32-х битная версия не сможет открыть JPEG-XR.

P.S. Комментарий к патчу: The G3 fax format plugin is deliberately disabled in the Fedora build of FreeImage as it requires that FreeImage uses a private copy of libtiff which is a no no because of security reasons.

Они там ещё отключили функции с lossless операциями над JPEG по этой же причине, но нас это особо не касается, т.к. у нас эти функции не используются.