在PHP中保存裁剪图像

时间:2013-07-30 10:13:58

标签: php image

我在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));

1 个答案:

答案 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);