0

そのため、ユーザーの画像をトリミングするための小さなスクリプトを作成しようとしています。いくつかの情報 (幅、高さ、配置プロパティ、画像の URL) をスクリプトに送信すると、トリミングされた画像が返されます。ただし、機能していません...「画像が見つかりません」というシンボルだけです:/これが私のスクリプトです。何か考えはありますか?

<?php
session_start();
header('Content-type: image/jpeg');
$w=$_GET['w'];
$h=$_GET['h'];
$x=$_GET['x'];
$y=$_GET['y'];
$filename="http://www.domain.com/".$_GET['src'];
$file_ext = substr($filename, strrpos($filename, ".") + 1);
$ext='';

if($file_ext=='jpg')
{
    $image = imagecreatefromjpeg($filename); 
}
else if ($file_ext=='gif')
{
    $image = imagecreatefromgif($filename); 
}
else if ($file_ext=='png')
{
    $image = imagecreatefrompng($filename); 
} 

$crop = imagecreatetruecolor($w,$h);
imagecopy($crop, $image, 0, 0, $x, $y, $w, $h);
imagejpeg($crop);
?>

編集:これがエラーのようです: Fatal error: Call to undefined function imagecreatetruecolor() in domainpath/crop.php on line 24 この関数をロードするために何かする必要がありますか?

4

3 に答える 3

2

エラーに関するコメントによると、imagecreatetruecolor()は確かに関数ですが、GD ライブラリがロードされている場合に限ります。

PHP インストールにアクセスできる互換性のあるバージョンの GD があることを確認してください。追加したばかりの場合は、Web サーバーを再起動することを忘れないでください。

于 2012-08-12T05:53:14.273 に答える
1

ImageMagickを使用して、これを試してください。

<?php
function resize_image($file, $w, $h, $crop=FALSE) {
    $img = new Imagick($file);
    if ($crop) {
        $img->cropThumbnailImage($w, $h);
    } else {
        $img->thumbnailImage($w, $h, TRUE);
    }

    return $img;
}
resize_image(‘/path/to/some/image.jpg’, 150, 150);
于 2012-08-12T05:53:05.987 に答える
0

GD / GD2 lib の代わりに imagemagick を使用することをお勧めします。品質を求めるなら、imagemagick は同じには良すぎます。同じhttp://www.rubblewebs.co.uk/imagemagick/compair.phpで比較するこのリンクもあり ます

于 2012-08-12T06:09:53.283 に答える