この記事の例では、PHP が URL に基づいてサムネイルを自動的に生成する方法について説明しています。これは非常に実用的な機能です。参考のためにみんなで共有してください。具体的な方法は以下の通りです
原則: Apache rewriteを設定し、イメージが存在しない場合はphpを呼び出してイメージを作成します。
例:
元の画像のパスは次のとおりです: http://localhost/upload/news/2013/07/21/1.jpg
サムネイルのパスは次のとおりです: http://localhost/supload/news/2013/07/21/1.jpg
http://localhost/supload/news/2013/07/21/1.jpg にアクセスすると、画像が存在する場合は画像が表示されます。それ以外の場合は、createthumb.php を呼び出してイメージを生成します。
ディレクトリ構造は次のとおりです:
www/PicThumb.class.php
www/ThumbConfig.php
www/upload/news/2013/07/21/1.jpg
www/upload/article/2013/07/21/2.jpg
www/supload/.htaccess
www/supload/watermark.png
www/supload/createthumb.php
http://localhost/ は www ディレクトリを指します
PicThumb.class.php の使用法については、こちらをご確認ください: http://www.bkjia.com/article/55530.htm
Apache の書き換えを有効にする必要があります:
.htaccess ファイルは次のとおりです:
createthumb.php ファイルは次のとおりです:
ThumbConfig.php ファイルは次のとおりです:
これらの 3 つのパスにアクセスすると、設定に従ってサムネイルが自動的に生成されます
http://localhost/supload/news/2013/07/21/1.jpg
http://localhost/supload/news_1/2013/07/21/1.jpg
http://localhost/supload/article/2013/07/21/2.jpg
ここをクリックして、この記事で説明されている例の完全なコードをダウンロードしてください。
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
PHP環境はGDライブラリをサポートする必要があります。
$img_name=$_GET['img']; //クエリ文字列を取得
$src_img=imagecreatefromjpeg($img_name);
$ow=imagesx($src_img);
$oh=images ($src_img);
$desc_img=imagecreate(400,300);
imagecopyresize($desc_img,$src_img,0,0,0,0,400,300,$ow,$oh);
imagejpeg($desc_img);
imagedestroy($desc_img);
imagedestroy($src_img);
?>
上記のコードは、次のような画像に基づいて 400*300 のサムネイルを生成できます。 img =1.jpg
必須 1.jpg が存在する必要があり、サイズは任意です。そして、1.jpgとimage.phpは同じディレクトリにあります。
www.xx.com/image.php?img=upload2009/1.jpg
もOKです。変更する必要はありません。上記のものを使用してください。とにかく、$img_name 変数は画像の URL です。実際の状況に応じて自分で変更できます。
関数を教えてください
// *****サムネイルを生成します*****
// jpg、png、gif 形式のみが考慮されます
// $srcImgPath ソース画像パス
// $targetImgPath ターゲット画像パス
// $targetW ターゲット画像の幅
// $targetH ターゲット画像の高さ
function makeThumbnail($srcImgPath,$targetImgPath,$targetW,$targetH)
{
$imgSize = GetImageSize($srcImgPath);
$imgType = $imgSize [2];
//@ エラー情報をページに出力しない関数にする
switch ($imgType)
{
case 1:
$srcImg = @ImageCreateFromGIF($srcImgPath);
Break;
case 2:
$ srcImg = @ImageCreateFromJpeg($srcImgPath);
break;
case 3:
$srcImg = @ImageCreateFromPNG($srcImgPath);
break;
}
//ソース画像の幅と高さを取得します
$srcW = ImageSX( $ srcImg);
$srcH = ImageSY($srcImg);
if ($srcW>$targetW || $srcH>$targetH)
{
$targetX = 0;
$targetY = 0;
if ($srcW >) ; $srcH)
{
$finaW=$targetW;
$finalH=round($srcH*$finaW/$srcW);
$targetY=floor(($targetH-$finalH)/2);
}
else
{
$finalH=$targetH;
$finaW=round($srcW*$finalH/$srcH);
$targetX=floor(($targetW-$finaW)/2);
}
//function_exists は次のことを確認します関数が定義されています
//ImageCreateTrueColor この関数には GD2.0.1 以降が必要です
if(function...残りのテキスト>>