Сохранить изображение, измененное с помощью PHP - PullRequest
3 голосов
/ 16 октября 2010

Я работаю над улучшением своего приложения на Facebook. Мне нужно иметь возможность изменить размер изображения, а затем сохранить его в каталоге на сервере. Это код, который я должен изменить размер:

<?php
// The file
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($filename);
$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
imagejpeg($image_p, null, 100);
?>

Мой вопрос: как мне сохранить это изображение с измененным размером? Мне нужно? Есть ли способ манипулировать измененным размером изображения без его сохранения ?

Ответы [ 3 ]

8 голосов
/ 16 октября 2010

Согласно руководству для imagejpeg () , необязательный второй параметр может указывать имя файла, в которое оно будет записано.

Filename

Путь для сохранения файла. Если значение не установлено или равно NULL, поток необработанных изображений будет выводиться напрямую.

Чтобы пропустить этот аргумент для предоставления параметра качества, используйте NULL.

Обычно рекомендуется записать результаты на диск для некоторого базового кэширования, чтобы не каждый входящий запрос приводил к (ресурсоемкому) вызову GD.

3 голосов
/ 16 июля 2014
function resize($img){
/*
only if you script on another folder get the file name
$r =explode("/",$img);
$name=end($r);
*/
//new folder
$vdir_upload = "where u want to move";
list($width_orig, $height_orig) = getimagesize($img);
//ne size
$dst_width = 110;
$dst_height = ($dst_width/$width_orig)*$height_orig;
$im = imagecreatetruecolor($dst_width,$dst_height);
$image = imagecreatefromjpeg($img);
imagecopyresampled($im, $image, 0, 0, 0, 0, $dst_width, $dst_height, $width_orig, $height_orig);
//modive the name as u need
imagejpeg($im,$vdir_upload . "small_" . $name);
//save memory
imagedestroy($im);
}

должно работать

1 голос
/ 16 октября 2010
...