Перейти к контенту

Более качественные превьюшки


Balancer

Рекомендуемые сообщения

imagecopyresized, как и imagecopyresampled в PHP масштабируют достаточно отвратительно, хотя и быстро. Однако же, в большинстве систем установлен ImageMagick, который делает это с куда лучшим качеством и с дополнительными возможностями.

 

Привожу тут пример, как поправить стандартную функцию масштабирования в iBF с целью работы с ImageMagick. Решение довольно грязное, т.к. в связи с таким переходом можно бы было избавиться от кучи ненужного кода, ввести поддержку любых поддерживаемых графических форматов (коих - десятки) и т.п., ну да фиг с ним, лень возиться :D

 

Итак, ищем ips_kernel\class_image.php сигнатуру:

//-----------------------------------------------
//Remove file extension...
//-----------------------------------------------

 

После неё находим строки:

                        if ( function_exists( 'imagejpeg' ) )
                        {
                            $this->file_extension = 'jpg';
                            @imagejpeg( $thumb, $this->out_file_dir."/".$this->out_file_name.'.jpg' );
                            @imagedestroy( $thumb );

 

вписываем после них:

                            $cvt = "convert -geometry ".$im['img_width']."x".$im['img_height']."! -normalize -unsharp 1 ".$this->in_file_complete." ".$this->out_file_dir."/".$this->out_file_name.".jpg";
                            `$cvt`;

 

находим чуть ниже:

                            $this->file_extension = 'png';
                            @imagepng( $thumb, $this->out_file_dir."/".$this->out_file_name.'.png' );
                            @imagedestroy( $thumb );

 

вписываем:

                            $cvt = "convert -geometry ".$im['img_width']."x".$im['img_height']."! -normalize -unsharp 1 ".$this->in_file_complete." ".$this->out_file_dir."/".$this->out_file_name.".png";
                            `$cvt`;

 

Всё. До кучи, раз уж вызываем convert, прописал ему нормализацию изображений по яркости и увеличение резкости (unsharp).

 

Вот, сравните тамбнейлы со стандартным и новым алгоритмом:

 

http://balancer.ru/img/forums/1-1.jpghttp://balancer.ru/img/forums/1-2.jpg

 

http://balancer.ru/img/forums/2-1.jpghttp://balancer.ru/img/forums/2-2.jpg

 

http://balancer.ru/img/forums/3-1.jpghttp://balancer.ru/img/forums/3-2.jpg

 

Предупреждение. При качестве JPEG по умолчанию в 75% новые тамбнейлы получаются в 2..3 раза больше по объёму. Если это критично - следует или понизить качество (-quality) или ввести сглаживание, или остаться на старом алгоритме.

Ссылка на комментарий
Поделиться на других сайтах

  • 8 месяцев спустя...
Спасибо! Нужно будет заюзать ...
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.