(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 по этой же причине, но нас это особо не касается, т.к. у нас эти функции не используются. |
|