PHP保存已调整大小的图像

时间:2017-03-18 22:02:05

标签: php image-processing gd image-resizing

我有这个PHP脚本调整图像大小并显示结果图像:

$filename = 'my-image.jpeg';

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

// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = 1200;
$new_height = ceil($height * ($new_width/$width));

// 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);

现在我要保存图像而不是显示它,保留原始图像,并将新创建的图像命名为“my-image-resized.jpeg”,如何?

1 个答案:

答案 0 :(得分:1)

imagejpeg function reference中所述,函数定义为:

bool imagejpeg ( resource $image [, mixed $to [, int $quality ]] )

第二个参数(例如$to)描述如下:

  

路径或开放流资源(在此函数返回后自动关闭)以保存文件。如果未设置或为NULL,则原始图像流将直接输出。

因为您已将NULL传递给$to参数,所以它直接流式传输,这意味着显示。为了将它保存到文件系统,你应该这样做:

imagejpeg($image_p, 'sampleImage.jpg' , 100);