Я создаю thumnails загруженного файла.Php Изменение размера изображения Увеличение размера изображения
если ширина и высота изображения больше 200, чем тогда, я их размер до 200 пикселей.
Вот код я использовал для этого:
if (file_exists($old_file)) {
$path_parts = pathinfo($old_file);
$extension = $path_parts['extension'];
$filename_path = $filepath . $filename;
$destination_path = $filename_path;
if (strtolower($extension) == "jpg" || strtolower($extension) == "jpeg") {
$uploadedfile = $old_file;
$src = imagecreatefromjpeg($uploadedfile);
} else if (strtolower($extension) == "png") {
$uploadedfile = $old_file;
$src = imagecreatefrompng($uploadedfile);
} else {
$uploadedfile = $old_file;
$src = imagecreatefromgif($uploadedfile);
}
list($width, $height) = getimagesize($uploadedfile);
$newwidth = $Size['width'];
$newheight = $Size['height'];
if ($width <= $newwidth && $height <= $newheight) {
$newwidth = $width;
$newheight = $height;
$tmp = imagecreatetruecolor($width, $height);
} else {
if ($width > $height) {
$newheight = ($height/$width) * $newwidth;
$tmp = imagecreatetruecolor($newwidth, $newheight);
} else {
$newwidth = ($width/$height) * $newheight;
$tmp = imagecreatetruecolor($newwidth, $newheight);
}
}
if ((strtolower($extension) == "png") OR (strtolower($extension) == "gif")) {
imagealphablending($tmp, false);
imagesavealpha($tmp, true);
$transparent = imagecolorallocatealpha($tmp, 255, 255, 255, 127);
imagefilledrectangle($tmp, 0, 0, $newwidth, $newheight, $transparent);
}
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
if (strtolower($extension) == "jpg" || strtolower($extension) == "jpeg") {
imagejpeg($tmp, $destination_path, 100);
} elseif (strtolower($extension) == "png") {
imagepng($tmp, $destination_path, 5);
} else {
imagegif($tmp, $destination_path);
}
chmod($destination_path, 0777);
imagedestroy($src);
imagedestroy($tmp);
ob_flush();
flush();
ob_end_flush();
return true;
} else {
return false;
}
он повторно размер больших изображений в 200px по 200px, но размер изображения увеличивается (байт и т.д. кб увеличивается).
Я попытался загрузить файл 8kb png, а размер нового миниатюры был 28kb?
Пробовал, но прибегая к помощи не нашел ничего полезного
Спасибо.
но документация говорит imagesgif есть только два параметра, где проходят параметр сжатия '/ ** * (PHP 4, PHP 5)
* выводит изображение в браузер или файл * @link HTTP: // PHP. net/manual/en/function.imagegif.php * @param resource $ image * @param string $ filename [необязательно]
Путь к сохранению файла. Если не установлено или NULL, поток необработанного изображения будет выводиться напрямую.
* @return bool TRUE по успеху или FALSE при аварии. */ Функция imagegif ($ image, $ filename = null) {} ' – RaviВот почему я сказал * may *. В вашем примере был «png». 'gif' не должен иметь такого же эффекта, так как' gif 'либо сжаты LZW, либо нет, нет градации. Поэтому вы не должны испытывать то же самое с 'gif'. – soulseekah
ОК. спасибо за объяснение. – Ravi