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

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


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 месяцев спустя...
Спасибо! Нужно будет заюзать ...
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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