Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Тип ресайза изображений (PHP)

364
03 июня 2008 года
Xupypr
148 / / 20.04.2000
Вопросик такой.

Меняю размер изображений, для представления их в виде превью. Все замечательно, но есть одно НО. При изменении изображений, на которых есть текст или тонкие, контрастные линии, оно получается несколько «пожеванным». Как я понимаю, это происходит из-за типа метода, которым меняется размер изображения. Хотелось бы знать, можно ли его изменить?

Для ресайза пользую GD

в частности ImageCopyResized
8.5K
03 июня 2008 года
Zmevius
34 / / 09.01.2006
Вот для себя когдато писал скрипт. Работает прикольно с псведо-подгоном размеров ))
Код:
<?
/*=============================================

    Script name:    IMAG.PHP
    Author:     Vaganov Igor aka Zmevius
    About Script:   Скрипт уменьшения изображения !!
            полезная весчь для новотсных движков
            сайтов знакомств, фотогалерей и т.п.

==============================================*/

//=====| Minimum size of output image |=====//
$Min_width2 = 128;
$Min_height2 = 192;


$imag1 = imagecreatefromjpeg("tmp.jpg");

//=====|    Берём размеры изображения, которое нужно уменьшить |=====//
$width2 = $width = imagesx($imag1);
$height2 = $height = imagesy($imag1);

//=====| Size of output image |=====//
if ($width > $height) {
 while ($width2 >= $Min_width2) {
    $width2 = $width2/2;
    $height2 = $height2/2;  
 }
} else {
 while ($height2 >= $Min_height2) {
    $width2 = $width2/2;
    $height2 = $height2/2;  
 }
}


$imag2 = imagecreatetruecolor($width2, $height2);

imagecopyresampled($imag2, $imag1, 0, 0, 0, 0, $width2, $height2, $width, $height);
imagepng($imag2);
header("Content-type: image/jpg");
?>
256
03 июня 2008 года
foxweb
1.0K / / 27.07.2005
Странно, что зная об ImageCopyResized автор упустил из виду imagecopyresampled() :)

А вот моя статья трёхлетней давности: http://www.codenet.ru/webmast/php/Image-Resize-GD/ (и рабочие примеры http://foxweb.net.ru/test/resize_class/)
364
03 июня 2008 года
Xupypr
148 / / 20.04.2000
все не то =)

знаю я как ресайзить, знаю и про imagecopyresampled(), вопрос в другом..

попробуйте создать изображение с темным фоном и белыми буквами на нем. точнее даже с мелким текстом и заресайзить его. Так вот, получается что кусок букв «съедаются», а те что остаются получаются как мелкие, яркие пиксели...

в том же фотошопе, есть несколько способов изменения размера изображения, при некоторых получается так же, при других - нет... так вот вопрос в чем.. тот ресайз, что в GD он единственный?? или есть в этой библиотеке и другие методы?
364
03 июня 2008 года
Xupypr
148 / / 20.04.2000
вообщем-то проблема чисто эстетического качества =)
8
03 июня 2008 года
mfender
3.5K / / 15.06.2005
А ты выводишь JPG, GIF или PNG? Может качество сжатия у JPG не шибко и портит артефактами изображение?
256
03 июня 2008 года
foxweb
1.0K / / 27.07.2005
Не вижу проблемы в том, чтобы заменить ImageCopyResized на imagecopyresampled() если не нравятся искажения. В противном случае юзаем ImageMagick. Больше тут имхо не о чем флудить.
364
03 июня 2008 года
Xupypr
148 / / 20.04.2000
Цитата: mfender
А ты выводишь JPG, GIF или PNG? Может качество сжатия у JPG не шибко и портит артефактами изображение?



JPG, качество исходников пробовал разное. В итоге ставлю 100.

364
04 июня 2008 года
Xupypr
148 / / 20.04.2000
http://ufacenter.ru/portfolio/_u_dizain_05/screen/pr/screen_110.jpg

вот пример «пожеванности».
304
04 июня 2008 года
Fenyx
707 / / 26.01.2005
Цитата: Xupypr
http://ufacenter.ru/portfolio/_u_dizain_05/screen/pr/screen_110.jpg

вот пример «пожеванности».


1. Какого размера был исходник? фотошоп тоже не всемогущ
2. Можно начинать холивар вин версус лин, :) по мощи фотошопа в лине я не встречал, а если и есть то наверняка плтные

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог