В данный момент, при масштабировании через CFile::ResizeImageGet картинка миниатюры сохраняется в том формате в котором исходная картинка. Т.е. png в png, jpg в jpg...
У нас в каталоге 10000 картинок в png формате.
Миниатюры так же в png формате, что в 4 раза увеличивает вес сайта.
Есть предложение, если установлена степень сжатия в параметрах CFile::ResizeImageGet, то всегда преобразовывать картинку любого формата в jpg. (при этом надо дать возможность выбора цвета беккграунда).
Пришлось в ядре ковырять ResizeImageFile, для собственной реализации этого, что неверно.
1) Сделать явное указание типа выходного файла. В т.ч. палитровые PNG и PNG с прозрачностью (для последних указать прозрачный цвет).
2) Сделать автоматический выбор типа выходного файла по минимальному размеру из явно указанного списка допустимых типов (JPG, PNG, PNG c палитрой в 256,128,64,32,16,8,2 цветов). Бывает, что у небольших миниатюр палитровый PNG получается меньше, чем JPG.
3) Выходные PNG-файлы обрабатывать утилитой PNGOut или аналогичной для минимизации размера.
Это все те операции, которые приходится проделывать вручную при публикации файлов.
Боюсь такого делать не будут, тут придется генерировать сразу во всех форматах и сравнивать размеры выходных фалов, что очень замедлит создание кеша миниатюр и в целом даст большую нагрузку на систему.
Нагрузка, конечно, возрастет, но и картинки обычно пачками не публикуют.
Разумеется, пункты 2 и 3 нельзя использовать при отдаче страницы. А при публикации, имхо, будет вполне терпимо.
Модуль имеет бесплатный демо-период для ознакомления.