Включаем гифки в блоге на LiveStreet


Зачем нужна CMS-ка, если из коробки нельзя постить гифки?

LiveStreet: Доброе утро

Всем добра этим утром

Если ты, владелец livestreet блога, столкнулся с такой же бедой, то поступай так :

Открываем файл enginemodulesimageImage.class.php

Бежим взглядом по коду до вот этого места (примерно строка 148) или ищем сверху по фразе «iWidthDest»

if ($iWidthDest) {
if ($bForcedMinSize and ($iWidthDest>$oImage->get_image_params('width'))) {
$iWidthDest=$oImage->get_image_params('width');
}
/**
* Ресайзим и выводим результат в файл.
* Если не задана новая высота, то применяем масштабирование.
* Если нужно добавить Watermark, то запрещаем ручное управление alfa-каналом
*/
$oImage->resize($iWidthDest,$iHeightDest,(!$iHeightDest),(!$aParams['watermark_use']));

Теперь словами проговорим логику этого куска (там ниже в коде посмотрите что происходит и сразу все поймете):

 

— Если передана максимальная ширина картинки, то {сжимаем}

/* Стоп но ведь она передается всегда!, Зачем сжимать картинки постоянно? */ -> Изменяем условие, теперь оно звучит так:

— Если передана максимальная ширина картинки (посути, всегда true) И картинка больше максимального размера — тогда {сжимаем}, иначе {сохраняем как есть}

Сам процесс

Обращаем внимание только на первое условие

if ($iWidthDest) {

Правим условие чтобы оно выглядело вот так

if ( $iWidthDest && ( $iWidthDest < $oImage->get_image_params('width')) ) {

Вот и все — теперь она «херит» все действия если картинка меньше максимального размера. Перестает ставить ватермарки и скруглять углы (ибо иначе GIF пересобирется и все бесполезно.) — Подводные камни этого метода «rarjpeg» и прочие хитрости пользователей вплоть до уничтожения вашей системы через дырку в PHP (где-то писали уже про это на хабре), но это не сравнится с радостью при зарузке смишных картинок!) Всем добра

Отдельное спасибо юзеру Lego

Перенесено с torshin.me