0

簡単なサムネイル生成を作成しようとしています。私はこれを Stack Overflow に関する別の質問に基づいていますが、必要に応じてコードを単純化しました。画像を取得し、高さのみに基づいて縮小することになっています。

function create_thumbnail($original_pic, $intended_heigth){
$info = getimagesize($original_pic);
$actual_width = $info[0];
$actual_height = $info[1];

if($info['mime'] == 'image\jpeg'){
    $src = imagecreatefromjpeg($original_pic);
}else{
    return false;
}

$ratio = $intended_heigth / $actual_height;  
$newheight = $intended_heigth;
$newwidth = $actual_width * $ratio; 
$writex = 0;
$writey = 0;

$thumbnail = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($thumbnail, $src, $writex, $writey, 0, 0, $newwidth, $newheight, $actual_width, $actual_height);
return imagejpeg($thumbnail);
}

そして、私はこのようにIDをエコーし​​ようとしています

<?php $original_pic = "images/info/7/01.jpg"; ?>
<img src="<?php create_thumbnail($original_pic, 90); ?>">

そして、これは何もしません。しかし、元のコードでは、このように定義された $writex がありました $writex = round(($mintednded_width - $newwidth) / 2); しかし、これが何のためにあるのか、私にはよくわかりません。何か案は?

4

3 に答える 3

1

関数には次のreturncreate_thumbnailステートメントがあります

return imagejpeg($thumbnail);

imagejpeg関数のドキュメントを読むと、イメージが正常に作成されたかどうかに関係なく、bool が返されることがわかります。

そして、その戻りbool値を<img>

<img src="<?php create_thumbnail($original_pic, 90); ?>">

あなたがしたいことは、生成されたサムネイルが保存されたパスを返すことです。ドキュメントを読み、関数の 2 番目のパラメーターに注意して、imagejpegそれを使用して保存されたサムネイルへのパスを返します。

幸運を

于 2013-07-12T11:42:22.260 に答える