我在php中使用imagecopy
裁剪图像。但我想把它保存到我原来的路上。我能用它做什么?这是我如何裁剪图像的方法。
$w=250;
$h=300;
$x=$_POST['x1'];
$y=$_POST['y1'];
$filename="upload/".$_SESSION['basename'];
header('Content-type: image/jpg');
//header('Content-Disposition: attachment; filename='.$src);
$image = imagecreatefromjpeg($filename);
$crop = imagecreatetruecolor($w,$h);
$new = imagecopy ($crop, $image, 0, 0, $x, $y, $w, $h);
imagejpeg($crop);
imagedestroy($filename);
我使用了这种方法,但它对我不起作用。
$input = 'upload/'.$new;
$output = 'upload/xxx.jpg';
file_put_contents($output, file_get_contents($input));
答案 0 :(得分:3)
只需指定保存文件的位置
即可imagejpeg($crop,$FILENAME);
根据您的评论,问题不在于保存文件,而是您没有有效的图片资源。
$image = imagecreatefromjpeg($filename);
应该是
$image = imagecreatefromjpeg($filename);
if (!$image)
exit("not a valid image");
你告诉它将原始图像中的$ x,$ y复制到250,300到新图像中,但是没有检查以确保你有一个足够大的图像,或者确实是那个x和y存在或者它们小于250,300
您还关注当前尝试imagedestroy()
文件名。您只能对图像资源进行图像处理。
imagedestroy($image);
imagedestroy($crop);