Метод мощный и удобный. Но недавно столкнулись с интересной проблемой на проекте. Контент-менеджер знал, что баннеры будут урезаны и сразу подготовил картинки нужного размера. При этом картинки весили по 500 кб. В настройках главного модуля стояло сжатие с качеством 95%, но, т.к. картинки были уже нужного размера, сжатия по размеру и качеству не произошло и на главной странице остались картинки по полмегабайта весом.
Предлагаю модифицировать ResizeImageGet таким образом, чтобы он, даже если картинку не надо сжимать по размерам изображения, сжимал ее по качеству.
В данный момент функция CFile::ResizeImageGet возвращает массив с ключами src, width, height, size. Поэтому, чтобы вытащить описание файла (в котором очень удобно хранить атрибут alt картинки), приходится делать дополнительный вызов CFile::GetByID. Говоря про описание файла, я имею в виду поле DESCRIPTION в таблице b_file.
Если бы CFile::ResizeImageGet возвращала дополнительно еще и ключ description, то работать с выводом изображений стало бы намного приятнее.
На странице документации привести подробные примеры использования функции для установки водяных знаков. Указать какие параметры обязательны, а какие нет.
В случае использования режима "BX_RESIZE_IMAGE_EXACT" дать возможность задать фоновый цвет, а ещё лучше, фоновую картинку, т.к. когда картинка обрезается до нужных размеров могут появиться чёрные поля (описано тут).
Вообще то по этой функции надо бы лучше сделать документацию. Как сохраняет файлы, куда, что и как кеширует... А то приходится гуглить и копаться в кодах
добавлено 03.01.12
Надо добавить флаг "принудительного растягивания". т.е. предположим, у нас выставлены размеры 400х300, а картинка загружена размером 300х250. В таком случае функция не отработает. А жаль... Иногда, пусть и с потерей качества надо растягивать
Добавить флаг "принудительно накладывать водяной знак". Пример: Есть у нас код: