ホームページ >バックエンド開発 >PHPチュートリアル >PHP ズーム画像_PHP チュートリアル

PHP ズーム画像_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:47:56960ブラウズ

Web サイトのフロントエンドにアップロードされた画像の場合、バックグラウンド処理中に画像を拡大縮小して、均一なサイズのサムネイルを生成する必要があります。 PHP では、GD ライブラリを使用してこのタスクを簡単に実行できます。以下の CImage クラスの静的メソッド CreateThumbnail() 関数は、元の画像ファイル名、サムネイルの幅と高さ、生成されたサムネイル ファイル名、およびその他のパラメータを受け入れて、元の画像のアスペクト比を維持するサムネイルを生成できます。基本的にはPHPでサムネイルを生成する方法を実現した機能であり、サムネイルファイルの名前から指定した形式のサムネイルを生成するなど、さらに機能を拡張することができます。

完全なコードは次のとおりです (Win7+XAMPP2.5 および Linuxdev 2.6.18-128+Apache はテストに合格しました):

//投稿者: MoreWindows ( http://www.BkJia.com )


クラス CImage
{
/**
* 元の画像の縦横比を維持したサムネイルを生成し、.png .jpg .gif をサポートします
※サムネイルの種類は.png形式に統一しました
* $srcFile 元の画像ファイル名
* $toW サムネイルの幅
* $toH サムネイル高
* $toFile サムネイルファイルの名前が空の場合、元の画像ファイルを上書きします
* @return bool
​*/
パブリック静的関数 CreateThumbnail($srcFile, $toW, $toH, $toFile="")
{
if ($toFile == "")
                                                                        $toFile = $srcFile; }
$info = ""; // 4 つのセル、幅 0、高さ 1、画像タイプ 2、幅と高さのテキストの説明 3 を含む配列を返します。
// false を返し、失敗した場合は警告を生成します。
$data = getimagesize($srcFile, $info); (!$data) の場合
false を返します。
// ファイルをリソース変数 im にロードします
スイッチ ($data[2]) //1-GIF、2-JPG、3-PNG
                                                            ケース 1:
If(!function_exists("imagecreatefromgif"))
                                                                echo "GD は .gif をサポートできません。.jpeg または .png を使用してください! back"; 終了();                                                                        $im = imagecreatefromgif($srcFile); 休憩
                                          ケース 2:
If(!function_exists("imagecreatefromjpeg"))
                                                                 echo "GD は .jpeg をサポートできません。他の画像を使用してください! back"; 終了();                                                                        $im = imagecreatefromjpeg($srcFile); 休憩
                                            ケース 3:
$im = imagecreatefrompng($srcFile); 休憩
}

//サムネイルの幅と高さを計算します
$srcW = 画像x($im); $srcH = imagey($im); $toWH = $toW / $toH;$srcWH = $srcW / $srcH; If ($toWH                                                              $ftoW = $toW; $ftoH = (int)($ftoW * ($srcH / $srcW)); }
それ以外
                                                             $ftoH = $toH; $ftoW = (int)($ftoH * ($srcW / $srcH)); }

If (function_exists("imagecreatetruecolor"))
                                                             $ni = imagecreatetruecolor($ftoW, $ftoH) // 新しいトゥルー カラー イメージを作成します
; if ($ni)
                                                                // 画像の一部をリサンプルしてコピーし、鮮明さを維持するためにサイズを変更します
Imagecopyresampled($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);                                                                      それ以外                                                                 //画像の一部をコピーしてサイズを変更します
$ni = imagecreate($ftoW, $ftoH); Imagecopyresize($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH);                                                                          }
それ以外
                                                             $ni = imagecreate($ftoW, $ftoH); imagecopyresize($ni, $im, 0, 0, 0, 0, $ftoW, $ftoH, $srcW, $srcH); }

// .png 形式でファイルに保存します
imagepng($ni, $toFile); //画像をブラウザまたはファイルに PNG 形式で出力します
画像破壊($ni); 画像破壊($im); true を返します
}


MoreWindows からの抜粋




http://www.bkjia.com/PHPjc/478474.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/478474.html

技術記事

Web サイトのフロントエンドにアップロードされた画像の場合、バックグラウンド処理中に画像を拡大縮小して、均一なサイズのサムネイルを生成する必要があります。 PHP では、GD ライブラリを使用してこのタスクを簡単に実行できます。 ...



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。