使用 PHP 保存裁剪后的图像

Posted

技术标签:

【中文标题】使用 PHP 保存裁剪后的图像【英文标题】:save cropped image with PHP 【发布时间】:2014-02-18 10:35:57 【问题描述】:

我有这个裁剪图像的脚本。如何保存到服务器?

  move_uploaded_file($_FILES["file"]["tmp_name"],
  "pictures/" . $_FILES["file"]["name"]);





$imgSrc = 'pictures/' . $_FILES["file"]["name"];

//getting the image dimensions
list($width, $height) = getimagesize($imgSrc);

//saving the image into memory (for manipulation with GD Library)
$myImage = imagecreatefromjpeg($imgSrc);

// calculating the part of the image to use for thumbnail
if ($width > $height) 
  $y = 0;
  $x = ($width - $height) / 2;
  $smallestSide = $height;
 else 
  $x = 0;
  $y = ($height - $width) / 2;
  $smallestSide = $width;


// copying the part into thumbnail
$thumbSize = 100;
$thumb = imagecreatetruecolor($thumbSize, $thumbSize);
imagecopyresampled($thumb, $myImage, 0, 0, $x, $y, $thumbSize, $thumbSize,     $smallestSide, $smallestSide);

//final output
header('Content-type: image/jpeg');
imagejpeg($thumb);

如您所见,我能够输出图像。但是我无法保存它。在此先感谢:)

【问题讨论】:

我想在裁剪后保存任何类型的图像。所以基本上最后需要保存的是$thumb变量。 【参考方案1】:

尝试提供第二个参数,第二个参数将文件名作为参数并保存在指定路径中

imagejpeg($thumb, 'filename');

例子

imagejpeg($thumb, 'uploads/yourfilename.jpg');

【讨论】:

请提供一些解释。对学习者大有裨益!【参考方案2】:

使用http://nl1.php.net/move_uploaded_file保存文件

move_uploaded_file($_FILES['file']['tmp_name'], "dir/".$_FILES['file']['name']);

或使用 imagejpeg,但你必须坚持使用 jpeg。

【讨论】:

以上是关于使用 PHP 保存裁剪后的图像的主要内容,如果未能解决你的问题,请参考以下文章

我只想将裁剪后的图像保存到图库中。但它保存了原始的完整图像。如何只保存裁剪的图像?

使用 laravel 将裁剪后的图像保存在 public/uploads 文件夹中

使用 CrobBox 将裁剪后的图像上传到 PHP

捕获和裁剪图像并保存裁剪的图像

PHP实现的自定义图像居中裁剪函数示例

使用 Jcrop 裁剪并使用 PHP GD 保存时如何获取可变宽度和高度