Jump to content
Дизайн и модификация Invision Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Zero108

Качество масштабируемых изображений

Recommended Posts

Когда форум масштабирует прицепленные к посту изображения, он создает превью заданного в админке размера (длина и высота).

 

А где настраивается качество сжатия для превью. Такое ощущение, что разработчики поставили качество jpg на выходе процентов 65 от оригинала, так как все превью в артефактах, аж глаз режет.

 

В каком файле подправить качество сжатия jpg, чтобы стояло 100%?

Edited by Zero108

Share this post


Link to post
В каком файле подправить качество сжатия jpg, чтобы стояло 100%?

\ips_kernel\class_image.php

Ищем

@imagejpeg( $thumb, $this->out_file_dir."/".$this->out_file_name.'.jpg' );

 

Меняем на

@imagejpeg( $thumb, $this->out_file_dir."/".$this->out_file_name.'.jpg', 100);

И получаем слонов. :) 100% не стоит.

 

В галереи такая же история. Значение по умолчанию, кошмарное.

Share this post


Link to post

Спасибо. Форум вылечен.

Share this post


Link to post

Вообще, подумалось, что многие разработчики таких вот форумов все еще живут во временах диалапных модемов, когда вес страницы и отдельного изображения был очень критичным параметром. Оттуда выросла привычка оптимизировать ВСЁ, что только можно...

Share this post


Link to post
Вообще, подумалось, что многие разработчики таких вот форумов все еще живут во временах диалапных модемов, когда вес страницы и отдельного изображения был очень критичным параметром.

Этот кусок кода, без изменения присутствовал еще на 2.1 А возможно он был и на 2.0 С тех пор, так все и тянется.

А грубо, IP.Board не приспособлен для работы с изображениями. У них нет не грамотного постановщика заданий, не исполнителей под графику. Из-за этого галерея, такая как есть.

Share this post


Link to post
В галереи такая же история. Значение по умолчанию, кошмарное.

 

Поставил галерею 2.2.4.

 

Изменил в файле sources/components_public/gallery/lib/lib_image.php

 

	 	if( $this->file_extension == 'gif' )
 	{
	 	$this->out_file_complete = preg_replace( "/(.gif)$/i", ".jpg", $this->out_file_complete);
 	}

 

на

 

	 	if( $this->file_extension == 'gif' )
 	{
	 	$this->out_file_complete = preg_replace( "/(.gif)$/i", ".jpg", $this->out_file_complete, 100);
 	}

 

Не помогло.

 

Где менять?

 

Кстати, пробовал запустить в галерее функцию добавления водяного знака. Прописал абсолютный путь, но ничего к изображению не добавилось. Это вообще работает?!

Share this post


Link to post
Где менять?

ИМХО но \ips_kernel\class_image.php

 

Кстати, пробовал запустить в галерее функцию добавления водяного знака. Прописал абсолютный путь, но ничего к изображению не добавилось. Это вообще работает?!

Работает. Много раз видел. Само изображение есть?

 

Но сам не ставил. Мне это не надо. У меня все фотографии авторские и если автор сам захочет, он поставить кпирайт на свою работу. Какое право, я имею ставить свой копирайт на чужую работу....

Share this post


Link to post

Я что-то не пойму: \ips_kernel\class_image.php отвечает за jpg форума, а не галереи, так? Или он заменяется галерейным? В файле \ips_kernel\class_image.php я еще давно поменял, когда спрашивал в этой ветке насчет превьшек для форума. А вот как в галерее сделать, никак не пойму... :D

Share this post


Link to post
А вот как в галерее сделать, никак не пойму... :D

Извините. Вчера невнимательно прочитал.

 

sources/components_public/gallery/lib/lib_image.php

 

Ищем

@$map[$this->file_extension]( $this->img, $this->out_file_complete );

 

и меняем на

@$map[$this->file_extension]( $this->img, $this->out_file_complete, X );

 

X - Степень сжатия. Максимально 100, но уже нормально 80 - 90

 

Это строчка встречается два раза. В функции _write_file_gd() и _write_file_gd1(). Как правило, используется gd(). Но можно заменить в обоих местах. Хуже не будет.

 

Или как вариант, в использование галереи, вместо библиотеки GD использовать ImageMagick. Качество превьюшек, будет на уровне.

Единственно, что ImageMagick должен быть установлен у хостера и надо прописать путь к бинарнику (convert), где он лежит. Что-то типа -- /usr/local/bin/

 

IPS увы не использует ImageMagick как модуль php, а работает с бинарным файлом.

Share this post


Link to post

Спасибо, как всегда помогло :D

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...