1

PHPを使用してリモートサーバーから画像をダウンロード、サイズ変更、保存するにはどうすればよいですか? これは私が使用しているコードです

$temp_image = file_get_contents($url);
$image = imagecreatefromstring($temp_image);
$thumb = imageToCanvas($image,100,75,true);
imagejpeg($thumb,$base_image_path . $thumb_path,90)


function imageToCanvas($_image, $_canvasWidth, $_canvasHeight, $forceScale=false,$x=false,$y=false) 
{
    $newImage = imagecreatetruecolor($_canvasWidth, $_canvasHeight);
    $imageinfo = getimagesize($_image);
    $sourceWidth = $imageinfo[0];
    $sourceHeight = $imageinfo[1];  
    $sourceImage = openImage($_image);
    imagecopyresampled($newImage, $sourceImage, 0, 0, 0, 0, $_canvasWidth, $_canvasHeight, $sourceWidth, $sourceHeight);
    return $newImage;
}

function openImage($file) 
{
 // *** Get extension
 $extension = strtolower(strrchr($file, '.'));
 switch($extension) {
   case '.jpg': case '.jpeg':
     $img = @imagecreatefromjpeg($file);
     break;
   case '.gif':
    $img = @imagecreatefromgif($file);
     break;
   case '.png':
     $img = @imagecreatefrompng($file);
     break;
   default:
     $img = false;
     break;
 }
 return $img; 
}

うまくいきませんし、理由もわかりません。

$sourceWidth&$sourceHeightには値がないため、$image形式が間違っていると思われます

ありがとう!

4

2 に答える 2

0

php には呼び出される関数がopenImageないため、自分で定義しないと問題になります。

定義されている場合、どのように表示され、エラーが発生していますか?

編集:openImageあなたのコメントに基づいて、関数の入力パラメーターをファイルパスとして扱うことが問題のようです。ただし、それを呼び出すと、画像リソースが供給されます。結果はimagecreatefromstring.

于 2012-10-03T21:37:57.567 に答える
0

Linux サーバーを使用していて、ghostscript がインストールされている場合 - 簡単な方法は次のとおりです。

shell_exec("in.jpg に変換 -100x75 のサイズに変更 out.jpg")
于 2012-10-03T21:34:19.447 に答える