ホームページ >バックエンド開発 >PHPチュートリアル >PHP は同じ割合のサムネイル実装プログラムを生成します_PHP チュートリアル

PHP は同じ割合のサムネイル実装プログラムを生成します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:46:03939ブラウズ

PHP でのサムネイルの生成は、プログラム開発でよく使用されます。以下に、サムネイルを生成するための優れた実装プログラムをいくつか見つけました。私はそれらを個人的にテストしましたが、非常に使いやすいです。

画像のサムネイルの作成には時間がかかります。このコードはサムネイルのロジックを理解するのに役立ちます。

コードは次のとおりです コードをコピー


/**********************
*@filename - 画像へのパス
*@tmpname - サムネイルへの一時パス
*@xmax - 最大幅
*@ymax - 最大高さ
*/
関数size_image($filename, $tmpname, $xmax, $ymax)
{
$ext =explode(".", $filename);
$ext = $ext[count($ext)-1];

if($ext == "jpg" || $ext == "jpeg")
$im = imagecreatefromjpeg($tmpname);
elseif($ext == "png")
$im = imagecreatefrompng($tmpname);
elseif($ext == "gif")
$im = imagecreatefromgif($tmpname);

$x = 画像x($im);
$y = 画像sy($im);

if($x 戻り $im;

if($x >= $y) {
$newx = $xmax;
$newy = $newx * $y / $x;
}
他に{
$newy = $ymax;
$newx = $x / $y * $newy;
}

$im2 = imagecreatetruecolor($newx, $newy);
Imagecopyresize($im2, $im, 0, 0, 0, 0, フロア($newx), フロア($newy), $x, $y);
$im2 を返します;
}

例 2

コードは次のとおりです コードをコピー

関数 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 を返します;
}
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632962.html技術記事 PHP でのサムネイルの生成は、プログラム開発でよく使用されます。私が個人的にテストした、サムネイルを生成するための優れた PHP 実装プログラムをいくつか紹介します。 作成...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。