0

Черные квадраты вместо фотографий при импорте из 1С в Битрикс

При выгрузке из 1С на сайте получаем вместо фотографий черные квадраты. Как быть и что же делать? Самое главное: кто виноват?

Это связано с тем, что в настройках инфоблока стоит опция «уменьшать изображения». И инфоблок честно пытается их уменьшить.

Но бывают не совсем корректно сформированные изображения (у меня jpeg). По разным причинам: битая флэшка, глупый фотоаппарат, глупый фотограф. Из-за этого библиотка GD (которую использует Битрикс) не может их открыть и отправляет Warning. Но так как Warning’и подавлены, лога импорта нет (о, как бы хотелось его получить) и нет проверки на валидность открытого файла, в итоге получаются черные квадраты.

Для того чтобы инфоблок пропускал «неправильные» картинки, нужно в файл /bitrix/modules/iblock/classes/general/iblock.php добавить проверку: смогла ли GD открыть наше изображение? В строке 2595 добавим строчки:


if ($image === false)
     return GetMessage("IBLOCK_BAD_FILE_UNSUPPORTED");

И система будет просто пропускать проблемные файлы.