Добрый день. Предлагаю исправление "забытой Богом" библиотеки
/includes/graphic.inc.php
Исправлено поведение при обработке прозрачности в PNG: теперь при изменении размера картинки сохраняется прозрачность
Это актуально для всех ресайзов: аватарки, фотоальбомы, статьи и пр...
необходимо заменить функцию function img_resize
Вопрос: почему выкладываю сюда, а не вношу изменения в сам Инстант?
Ответ: не пускают в разработчики, стучался. Общался с Fuze, MadMax. R2 так и не отозвался. Так что пардон, в исходники залить не могу
и обращаю внимание, что после расайза в комопненте фотоальбом, каталога картинка будет иметь расширение jpg, т.к. оно задается в коде модуля принудительно (ищите @img_resize в коде фронтенда). Однако современные браузеры справляются с этой задачей и отображают пнг с прозрачностью
пример vrame.com.ua/frames/frame128.html — основное изображение (слева) с прозрачностью
R124054188127
Z230845734769
U184007373206
/includes/graphic.inc.php
Исправлено поведение при обработке прозрачности в PNG: теперь при изменении размера картинки сохраняется прозрачность
Это актуально для всех ресайзов: аватарки, фотоальбомы, статьи и пр...
необходимо заменить функцию function img_resize
function img_resize($src, $dest, $maxwidth, $maxheight=160, $is_square=false, $watermark=false, $rgb=0xFFFFFF, $quality=80) { if ($size === false) return false; $new_width = $size[0]; $new_height = $size[1]; if (($new_height <= $maxheight) && ($new_width <= $maxwidth)){ return true; } // Определяем исходный формат по MIME-информации, предоставленной // функцией getimagesize, и выбираем соответствующую формату // imagecreatefrom-функцию. $icfunc = "imagecreatefrom" . $format; $isrc = $icfunc($src); if ($rgb==0xFFFFFF) if($is_square){ // вырезаем квадратную серединку по x, если фото горизонтальное if ($new_width>$new_height) // вырезаем квадратную верхушку по y, if ($new_width<$new_height) imagecopyresampled($idest, $isrc, 0, 0, 0, 0, $maxwidth, $maxwidth, min($new_width,$new_height), min($new_width,$new_height)); // квадратная картинка масштабируется без вырезок if ($new_width==$new_height) } else { while ($new_width>$maxwidth) { $new_width *= 0.99; $new_height *= 0.99; } while ($new_height>$maxheight) { $new_width *= 0.99; $new_height *= 0.99; } } if ($watermark) { img_watermark($idest, $new_width, $new_height); } // вывод картинки и очистка памяти if ($format=='png'){ } else{ } return true; }
Ответ: не пускают в разработчики, стучался. Общался с Fuze, MadMax. R2 так и не отозвался. Так что пардон, в исходники залить не могу
и обращаю внимание, что после расайза в комопненте фотоальбом, каталога картинка будет иметь расширение jpg, т.к. оно задается в коде модуля принудительно (ищите @img_resize в коде фронтенда). Однако современные браузеры справляются с этой задачей и отображают пнг с прозрачностью
пример vrame.com.ua/frames/frame128.html — основное изображение (слева) с прозрачностью
R124054188127
Z230845734769
U184007373206
Реклама #
Darik 12 лет назад #
reload 12 лет назад #
Возможно и добавят если решение действительно хорошее и правильное.
Вы представьте если всем начнут давать возможность изменять релиз по своему усмотрению)
зы:Создайте свой мод, закиньте на свой сервер и укажите ссылку для скачивания, если вам уж сильно охота это делать. Правда сомневаюсь что пользоваться такими сборками будут) сами наверное понимаете почему.
Protomoto 12 лет назад #
Я понимаю насколько сложно удовлетворять некоторые тикеты, тем более мелочные - поэтому я готов самостоятельно вносить изменения
oll 12 лет назад #
САЙТ PHP CLASS не могу пободрать современный класс для обработки изображений.Останока на двух- и в каждом есть свои недостатки и преимущества.
Двойка покажет ,что в перспективе.
Страна Тем 12 лет назад #
letsgo 12 лет назад #
Эд 12 лет назад #