4

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));
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 に答える