X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Как увеличить качество уменьшаемой и обрезаемой картинки?
sc2r2bey
sc2r2bey
Topic Starter сообщение 3.7.2010, 20:46; Ответить: sc2r2bey
Сообщение #1


уменьшаю картинку вот такой функцией:
[php]function resizeimgW($filename, $smallimage, $w, $h)
{
// Имя файла с масштабируемым изображением
$filename = $filename;
// Имя файла с уменьшенной копией.
$smallimage = $smallimage;
// определим коэффициент сжатия изображения, которое будем генерить
$ratio = $w/$h;
// получим размеры исходного изображения
$size_img = getimagesize($filename);
// получим коэффициент сжатия исходного изображения
$src_ratio=$size_img[0]/$size_img[1];
// Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились
// пропорции исходного изображения
if ($ratio>$src_ratio)
{
$h = $w/$src_ratio;
}
else
{
$w = $h*$src_ratio;
}
// создадим пустое изображение по заданным размерам
$dest_img = imagecreatetruecolor($w, $h);
// создаем jpeg из файла
$src_img = imagecreatefromjpeg($filename);
// масштабируем изображение функцией imagecopyresampled()
// $dest_img - уменьшенная копия
// $src_img - исходной изображение
// $w - ширина уменьшенной копии
// $h - высота уменьшенной копии
// $size_img[0] - ширина исходного изображения
// $size_img[1] - высота исходного изображения
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
// сохраняем уменьшенную копию в файл
imagejpeg($dest_img, $smallimage);
// чистим память от созданных изображений
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}[/php]

потом вырезаю середину вот такой функцией:
[php]/**
/* @desc функция вырезает на картинке произвольную отцентрованную область
/* @param $filename путь к файлу с исходной картинкой
/* @param $w нужная ширина "обрезка"
/* @param $h нужная высота "обрезка"
/* @param $target_filename куда записывать результат. Если не указать, то перепишется исходный файл.
*/
function evokeAlignedAreaT($filename,$w,$h,$target_filename=null){
$thumb = imagecreatetruecolor($w, $h);
$bgc = imagecolorallocate($thumb, 255, 255, 255);
imagefilledrectangle($thumb, 0, 0, $w, $h, $bgc);
$source = imagecreatefromjpeg($filename);
$size = GetImageSize($filename);
$x = round(($size[0]-$w)/2);
$y = round(($size[1]-$h)/2);
imagecopyresampled($thumb, $source, 0, 0, $x, $y, $w, $h, $w, $h);
$target_filename = is_null($target_filename)?$filename:$target_filename;
imagejpeg($thumb,$target_filename);
imagedestroy($thumb);
imagedestroy($source);
return true;
}[/php]

получаются превьюшки не очень симпатичные, http://novoshu.ru/
можно ли их сделать более качественные?


--------------------
Заметки о разработке и не только
программирую web и для we
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 3.7.2010, 23:01; Ответить: sc2r2bey
Сообщение #2


разобрался надо сделать [php]imagejpeg($thumb,$target_filename, 100);[/php]


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 3.7.2010, 23:03; Ответить: ZiTosS
Сообщение #3


sc2r2bey, можно, но нужно сжимать не так сильно. Растровые изображения при сжатии неизбежно теряют качество, так как целостность картинки создается не объектами, а отдельнгыми пикселами. Причем чем больше картинка была и чем больше мы её сжимаем, тем больше искожения.

Можно решить вопрос использованием векторных изображений. Они при сжатии не теряют качество.
Вообщем вопрос решаем с растром так:
1) Брать для уменьшения небольшие картинки, тогда при сжатии искажение будет малым;
2) Сжимать не так сильно, чтобы искажение в пикселях было не большим.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 3.7.2010, 23:05; Ответить: sc2r2bey
Сообщение #4


согласен, но стоит вопрос для работы фотографий


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 3.7.2010, 23:40; Ответить: ZiTosS
Сообщение #5


sc2r2bey, а зачем тебе thumbnail в хорошем качестве? Это же чисто предпросмотр. И скажи, с каким и до каких размеров ты сжимаешь, а затем вырезаешь центр.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 4.7.2010, 0:38; Ответить: sc2r2bey
Сообщение #6


так опрятнее выглядит я уменьшаю до 150 пискелей меньшую сторону и обрезаю лишнее


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 4.7.2010, 11:36; Ответить: ZiTosS
Сообщение #7


sc2r2bey, а какие размеры картинок изначально? Вообще чуть улучшить качество изображения можно в функции imagejpeg, параметр quality.
А вообще можно поюзать библиотеку ImageMagick (см. Пример - там указано про качество).

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
29 freeax 4670 Сегодня, 1:19
автор: sergio11
Открытая тема (нет новых ответов) Давайте обсудим качество in-page push трафика
0 Boymaster 229 Вчера, 22:47
автор: Boymaster
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
148 adw-kupon.ru 19665 8.4.2024, 10:37
автор: Skyworker
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
18 uahomka 3074 5.4.2024, 5:53
автор: Skyworker
Открытая тема (нет новых ответов) Качество трафика зависит от способа CMP/CPC оплаты?
2 Boymaster 1018 4.4.2024, 15:49
автор: spomoni


 



RSS Текстовая версия Сейчас: 17.4.2024, 2:44
Дизайн