関数 create_thumbnail($img,$w,$h,$path)
{
$org_info = getimagesize($img); //画像サイズを取得し、post 経由で渡されます
//var_dump($org_info);
//Array ( [0] => 1024 [1] => 768 [2] => 3 [3] => width="1024" height="768" [bits] => 8 [mime] ] =>画像/png)
$orig_x = $org_info[0] //画像の幅 ;
$orig_y = $org_info[1] //画像の高さ ;
$orig_type = $org_info[2]; //画像カテゴリは接尾辞 1 = GIF、2 = JPG、3 = PNG、
//トゥルーカラー画像です
if (function_exists("imagecreatetruecolor"))
{
スイッチ($orig_type)
{
//指定されたgifファイル名から取得した画像
ケース 1 : $thumb_type = ".gif"; $_creatImage = "imagegif";
休憩
//指定されたjpeg、jpgファイル名から取得した画像
ケース 2 : $thumb_type = ".jpg"; $_creatImage = "imagejpeg";
休憩
//指定されたpngファイル名から取得した画像
ケース 3 : $thumb_type = ".png"; $_creatImage = "imagepng";
休憩
}
}
//指定されたファイル名から画像が利用可能な場合
if(function_exists($_function))
{
$orig_image = $_function($img); //指定された $img ファイル名から取得された画像
}
if (($orig_x / $orig_y) >= (4 / 3)) //幅/高さ >= 4/3 の場合
{
$y =round($orig_y / ($orig_x / $w)) //浮動小数点数の丸め ;
$x = $w;
}
else //つまり、高さ/幅 >= 4/3
{
$x = ラウンド($orig_x / ($orig_y / $h));
$y = $h;
}
$sm_image = imagecreatetruecolor($x, $y) //トゥルーカラー画像を作成します ;
//画像のコピー部分をリサンプルし、サイズを変更します
Imagecopyresampled($sm_image, $orig_image, 0, 0, 0, 0, $x, $y, $orig_x, $orig_y);
//imageJPEG($sm_image, '', 80) //ブラウザに画像を出力します ;
$tnpath = $path."/"."s_".date('YmdHis').$thumb_type; //サムネイルパス
$thumbnail = @$_creatImage($sm_image, $tnpath, 80); //画像を生成し、成功した場合は true (または 1) を返します
imagedestroy ($sm_image) // 画像を破棄します
if($thumbnail==true)
{
$tnpath を返します;
}
}
|