теряется качество при уменьшении картинки

Stierus

Новичок
теряется качество при уменьшении картинки

function make_img_file($filename, $dirname, $type=false){

if ($type =="middle"){
$max_width = 320;
$max_height = 240;
$name_img = $dirname."middle_".$filename;
$name_img_small = "middle_".$filename;
}
elseif ($type =="small"){
$max_width = 180;
$max_height = 135;
$name_img = $dirname."small_".$filename;
$name_img_small = "small_".$filename;
}
else{
return false;
}

$file = $dirname.$filename;

list($width, $height, $type) = getimagesize($file);
$koef_w = $max_width/$width;
$koef_h = $max_height/$height;
if ($koef_w > $koef_h){
$percent = $koef_h;
}
else{
$percent = $koef_w;
}

$newwidth = $width * $percent;
$newheight = $height * $percent;


$thumb = imagecreatetruecolor($newwidth, $newheight);
switch($type){
case 1:
$source = imagecreatefromGIF($file);
break;
case 2:
$source = imagecreatefromjpeg($file);
break;
case 3:
$source = imagecreatefromPNG($file);
break;
default:
return false;
}

исходная картинка 480 на 360 при уменьшении картинки качество заметно теряется, в чём может быть проблема ?
 

kruglov

Новичок
приведенная функция уменьшением картинок не занимается.
 

Stierus

Новичок
упс, сори ... не всё скопировал

function make_img_file($filename, $dirname, $type=false){

if ($type =="middle"){
$max_width = 320;
$max_height = 240;
$name_img = $dirname."middle_".$filename;
$name_img_small = "middle_".$filename;
}
elseif ($type =="small"){
$max_width = 180;
$max_height = 135;
$name_img = $dirname."small_".$filename;
$name_img_small = "small_".$filename;
}
else{
return false;
}

$file = $dirname.$filename;

list($width, $height, $type) = getimagesize($file);
$koef_w = $max_width/$width;
$koef_h = $max_height/$height;
if ($koef_w > $koef_h){
$percent = $koef_h;
}
else{
$percent = $koef_w;
}

$newwidth = $width * $percent;
$newheight = $height * $percent;


$thumb = imagecreatetruecolor($newwidth, $newheight);
switch($type){
case 1:
$source = imagecreatefromGIF($file);
break;
case 2:
$source = imagecreatefromjpeg($file);
break;
case 3:
$source = imagecreatefromPNG($file);
break;
default:
return false;
}

$result = imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
if ($result){
//$image_here = imagejpeg($thumb, $name_img, 100);
$image_here = imagejpeg($thumb, $name_img);
}
else{
return false;
}
return $name_img_small;
}
 

kruglov

Новичок
Stierus
Занимается она ерундой.

Покажите, где именно, по вашему мнению, она уменьшает картинку и сохраняет ее в файл?

Либо вы не ту функцию дали, либо только часть кода, либо еще что.

-~{}~ 21.05.07 13:18:

Читайте внимательно хелп к [m]imagecopyresized[/m]
 
Сверху