PHP Thumb生成サムネイル
PHP Thumbは、PHPのクラスが画像を生成するためのサムネイルです.
サンプルコード:
phpThumbのいくつかの基本パラメータ
いくつかの有用なパラメータを列挙します.
src:ターゲットピクチャのアドレス
w:出力ピクチャの幅
h:出力ピクチャの高さ(wパラメータによる等比スケーリングを指定しない場合)
q:出力がJPG形式であれば、その出力品質を規定することができる
bg:出力時の背景(必要に応じて)
sw、sh、sx、sy:局所出力、幅高、開始位置
f:出力フォーマット、jpeg、png、gif、ico
sfn:gifアニメーションのフレームを出力する
fltr[]:フィルタは、シャープ化、ぼかし、回転反転、透かし、枠線、遮光、色調整など、多くの効果を得ることができます.
詳細については、公式ルーチンを参照してください.
http://phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php
phpThumb和を用いる.htaccessはサムネイルをキャッシュする
原理:ユーザーがyourにアクセスする.com/thumbs/images/image.50×50.jpgのようなサイトでは、スクリプトがyourを生成する.com/images/image.jpgのサムネイルをyourに保存します.com/thumbs/images/image.50×50.jpg、次の訪問でPHPを調整する必要はありません.
概要
約1年前にphpThumbという牛割りのスクリプトに出会った.画像をスケールするためのオープンソースプロジェクトだ.もちろんGD 2やimagemagick(magickwand)で同じことをすることができますが、phpThumbはこれを専門にしています.かなり簡単に使えます.
アクセス量が大きいと耐えられない.apacheは各画像の要求にPHPを調整してphpThumbのコードを解析しなければならないからだ.phpThumb自身がキャッシュを持っているにもかかわらず、PHPを調整してキャッシュから読むかどうかを決定します.
誰かがmodを使っているのを見たことがあります.rewriteは、存在しないピクチャをサムネイルを生成できるスクリプトにリダイレクトし、パフォーマンスの問題を解決します.
必要なもの:
Apache
mod_rewrite
PHP
これらのものは通常仮想ホストにありますが、どのようにインストールするかは本稿の議論の範囲外です.
OK、どうすればいいか教えてください.
phpThumbのアップロード
ここからphpThumbをダウンロードします.http://phpthumb.sourceforge.net/それをアップロードしてcom/phpthumb
Mod_の設定Rewrite
新しいcom/thumbs/.htaccess :
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?thumb=$1 [L,QSA]
新規サムネイル生成スクリプト:
新しいcom/thumbs/index.php
. コードは次のとおりです.
$thumb = $_GET['thumb'];
if (!$thumb) {
exit;
}
//
$thumb_array = explode('.',$thumb);
$image = '../';
foreach($thumb_array as $k=>$thumb_part){
if ($k != count($thumb_array)-2) {
$image .= $thumb_part . '.';
}
}
$image = substr($image,0,-1);
list($width,$height) = explode('x',$thumb_array[count($thumb_array)-2]);
//
if (file_exists($image)) {
require('../phpthumb/phpthumb.class.php');
$phpThumb = new phpThumb();
$phpThumb->setSourceFilename($image);
$phpThumb->setParameter('w',$width);
$phpThumb->setParameter('h',$height);
//$phpThumb->setParameter('far','C');//scale outside
//$phpThumb->setParameter('bg','FFFFFF');//scale outside
if ($phpThumb->GenerateThumbnail()) {
mkdir(dirname($thumb),0777,true);
if ($phpThumb->RenderToFile($thumb)) {
header('Location:/thumbs/'.$thumb);
exit;
}
}
}
テストしてみます!
画像をyoursiteにアップロードします.com/images/myimage.jpg
ブラウザを開いてyoursiteにアクセスしてください.com/thumbs/images/myimage.100×100.jpg
thumbsディレクトリをチェックすると、サムネイルがあるはずです.次回の訪問はPHPを調整する必要はありません.
公式サイトhttp://phpthumb.gxdlabs.com/
サンプルコード:
<?php
require_once '/path/to/ThumbLib.inc.php';
$thumb = PhpThumbFactory::create('test.jpg');
$thumb->resize(100, 100);
$thumb->show();
?>
phpThumbのいくつかの基本パラメータ
いくつかの有用なパラメータを列挙します.
src:ターゲットピクチャのアドレス
w:出力ピクチャの幅
h:出力ピクチャの高さ(wパラメータによる等比スケーリングを指定しない場合)
q:出力がJPG形式であれば、その出力品質を規定することができる
bg:出力時の背景(必要に応じて)
sw、sh、sx、sy:局所出力、幅高、開始位置
f:出力フォーマット、jpeg、png、gif、ico
sfn:gifアニメーションのフレームを出力する
fltr[]:フィルタは、シャープ化、ぼかし、回転反転、透かし、枠線、遮光、色調整など、多くの効果を得ることができます.
詳細については、公式ルーチンを参照してください.
http://phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php
phpThumb和を用いる.htaccessはサムネイルをキャッシュする
原理:ユーザーがyourにアクセスする.com/thumbs/images/image.50×50.jpgのようなサイトでは、スクリプトがyourを生成する.com/images/image.jpgのサムネイルをyourに保存します.com/thumbs/images/image.50×50.jpg、次の訪問でPHPを調整する必要はありません.
概要
約1年前にphpThumbという牛割りのスクリプトに出会った.画像をスケールするためのオープンソースプロジェクトだ.もちろんGD 2やimagemagick(magickwand)で同じことをすることができますが、phpThumbはこれを専門にしています.かなり簡単に使えます.
アクセス量が大きいと耐えられない.apacheは各画像の要求にPHPを調整してphpThumbのコードを解析しなければならないからだ.phpThumb自身がキャッシュを持っているにもかかわらず、PHPを調整してキャッシュから読むかどうかを決定します.
誰かがmodを使っているのを見たことがあります.rewriteは、存在しないピクチャをサムネイルを生成できるスクリプトにリダイレクトし、パフォーマンスの問題を解決します.
必要なもの:
Apache
mod_rewrite
PHP
これらのものは通常仮想ホストにありますが、どのようにインストールするかは本稿の議論の範囲外です.
OK、どうすればいいか教えてください.
phpThumbのアップロード
ここからphpThumbをダウンロードします.http://phpthumb.sourceforge.net/それをアップロードしてcom/phpthumb
Mod_の設定Rewrite
新しいcom/thumbs/.htaccess :
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?thumb=$1 [L,QSA]
新規サムネイル生成スクリプト:
新しいcom/thumbs/index.php
. コードは次のとおりです.
$thumb = $_GET['thumb'];
if (!$thumb) {
exit;
}
//
$thumb_array = explode('.',$thumb);
$image = '../';
foreach($thumb_array as $k=>$thumb_part){
if ($k != count($thumb_array)-2) {
$image .= $thumb_part . '.';
}
}
$image = substr($image,0,-1);
list($width,$height) = explode('x',$thumb_array[count($thumb_array)-2]);
//
if (file_exists($image)) {
require('../phpthumb/phpthumb.class.php');
$phpThumb = new phpThumb();
$phpThumb->setSourceFilename($image);
$phpThumb->setParameter('w',$width);
$phpThumb->setParameter('h',$height);
//$phpThumb->setParameter('far','C');//scale outside
//$phpThumb->setParameter('bg','FFFFFF');//scale outside
if ($phpThumb->GenerateThumbnail()) {
mkdir(dirname($thumb),0777,true);
if ($phpThumb->RenderToFile($thumb)) {
header('Location:/thumbs/'.$thumb);
exit;
}
}
}
テストしてみます!
画像をyoursiteにアップロードします.com/images/myimage.jpg
ブラウザを開いてyoursiteにアクセスしてください.com/thumbs/images/myimage.100×100.jpg
thumbsディレクトリをチェックすると、サムネイルがあるはずです.次回の訪問はPHPを調整する必要はありません.
公式サイトhttp://phpthumb.gxdlabs.com/