GD - ужасное сжатие JPEG

FedY@

Новичок
GD - ужасное сжатие JPEG

GD - ужасное сжатие JPEG.
Ситуация такая - пользователь загружает картинку, она загружается в 3 вариантах
1. Оригинал
2. Превью
3. Стандарт (стандарт который исп. на сайте).

Так вот GD просто ужасно сжимает JPEG. В гугле был, ничего интересного... есть ли какое-то другое решение?
(при сжатии исп. - quality=100%)
 

fixxxer

К.О.
Партнер клуба
"ужасно сжимает" - отличное описание проблемы, просто на стопиццот.
 

FedY@

Новичок
Автор оригинала: HraKK
Выставте опцию fear_compression = false
спасибо, посмеялся...

-~{}~ 17.09.08 12:35:

Автор оригинала: fixxxer
"ужасно сжимает" - отличное описание проблемы, просто на стопиццот.
Расшифровка:
1. Как такого сжатие мне совсем не нужно, мне только нужно сменить размеры картинки
2. На картинки при сжатии видно пикселизацию. ХОРОШО ВИДНО. при quality=100
 

tony2001

TeaM PHPClub
описание проблемы "на стопицот":
"плохо сжимает. видно пикселизацию."
информативность == 0%

нормальное описание проблемы:
скрипт на 5 строк, оригинал картинки, результат.
информативность == 90%
 

FedY@

Новичок
imagecopyresized (quality 100)


imagecopyresampled (quality 100)


-~{}~ 17.09.08 13:00:

PHP:
function imageresize($outfile,$infile,$neww,$newh,$quality) {
    $im=imagecreatefromjpeg($infile);
    $im1=imagecreatetruecolor($neww,$newh);
    //imagecopyresampled($im1,$im,0,0,0,0,$neww,$newh,imagesx($im),imagesy($im));
    imagecopyresized($im1,$im,0,0,0,0,$neww,$newh,imagesx($im),imagesy($im));

    imagejpeg($im1,$outfile,100);
    imagedestroy($im);
    imagedestroy($im1);
}

function imagecrop($nw, $nh, $source, $dest,$dx,$dy) {
	$simg = @imagecreatefromjpeg($source);
	$dimg = @imagecreatetruecolor($nw, $nh);
	//@imagecopyresampled($dimg,$simg,0,0,$dx,$dy,$nw,$nh,$nw,$nh);
    @imagecopyresized($dimg,$simg,0,0,$dx,$dy,$nw,$nh,$nw,$nh);
    @imagejpeg($dimg,$dest,100);  
}
 

флоппик

promotor fidei
Команда форума
Партнер клуба
там видно на лице пикселизацию.
там не пикселизация, а JPEG-артефакты. Откуда берутся рассказывать сложно, это особенность алгоритма сжатия. Попробуй:
1. Отказатся от JPEG. (взять PNG например)
2. Выбрать коофициент ресайза кратный 8. (или хотя бы 2-м)
 

kruglov

Новичок
Оригинал дайте тож посмотреть.

Вообще, не замечал, чтоб в JPEG при качестве, близком к 100, PHP выдавал такую размытую картинку.

Вообще, размер у файла маловат для 100% качества...

Откуда берутся рассказывать сложно, это особенность алгоритма сжатия.
Объяснить довольно просто в двух строчках:

Изображение делится на квадраты, для каждого из них составляется функция, задающая "переливы" цветов. Чем больше коэффициентов у функции, тем точнее она описывает оригинал, но тем больше размер файла.
 
Сверху