4

imagecopy 我在 php 中使用裁剪图像。但我想将它保存到我的旧路径。我可以用来做什么?这是我裁剪图像的方法。

$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));
4

1 回答 1

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 图像资源。

imagedestroy($image);
imagedestroy($crop);
于 2013-07-30T10:16:27.460 回答