Мне нужно изменить размер изображений с помощью PHP. Но ... качество очень, очень плохо !! (Смотрите на фото)Изменение размера изображения без потери качества
Вот мой код:
function _copyAndResizeImage($id, $wanted_width, $isAdvert=true) {
// The file
if ($isAdvert) {
$filename = "../upload/images/advert/".$id."/1.jpg";
} else {
$filename = "../upload/images/user/".$id.".jpg";
}
list($width, $height) = getimagesize($filename);
if ($width == 0) {
$percent=1;
} else {
$percent = $wanted_width/$width;
}
// Content type
header('Content-Type: image/jpeg');
// Get new dimensions
$new_width = $width * $percent;
$new_height = $height * $percent;
// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// Output
if ($isAdvert) {
imagejpeg($image_p, '../upload/images/advert/'.$id.'/1-'.$wanted_width.'.jpg');
} else {
imagejpeg($image_p, '../upload/images/user/'.$id.'-'.$wanted_width.'.jpg');
}
}
Вы получили идею? Благодаря
Ну, вот что может сделать небольшое изображение, не так уж и есть. Насколько велика ваша оригинальная картина? –
У меня нет источника, но размер источника, если обычно больше –
, попробуйте некоторые библиотеки, такие как [phpThumb] (http://phpthumb.sourceforge.net/), или добавьте параметр качества изображения в функцию 'imagejpeg ' – bystwn22