PHP圖片處理類 phpThumb參數(shù)用法介紹
更新時間:2012年03月11日 22:55:57 作者:
PHP圖片處理類 phpThumb參數(shù)用法介紹,需要的朋友可以參考下
phpThumb幾個基本參數(shù)
一些有用的參數(shù)列一下:
src:目標(biāo)圖片的地址
w:輸出圖片的寬度
h:輸出圖片的高度(如果不指定他將按w參數(shù)等比縮放)
q:輸出如果是JPG格式的,可以規(guī)定它的輸出質(zhì)量
bg:輸出時的背景(如果需要)
sw、sh、sx、sy:局部輸出,寬高、起始位置
f:輸出格式,可以為jpeg、png、gif、ico
sfn:輸出gif動畫中的某一幀
fltr[]:濾鏡,可以有很多效果,包括銳化、模糊、旋翻轉(zhuǎn)、水印、邊框、遮照、色彩調(diào)整等
更多效果可以參看官方例程:
http://phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php
使用 phpThumb 和 .htaccess 來緩存縮略圖
原理:用戶訪問 your.com/thumbs/images/image.50×50.jpg 這樣的網(wǎng)址,腳本生成 your.com/images/image.jpg 的縮略圖,并且保存到 your.com/thumbs/images/image.50×50.jpg,下次訪問就不用調(diào) PHP 啦。
簡介
大約一年以前我碰到了 phpThumb 這個牛掰的腳本,它是個用來縮放圖片的開源項(xiàng)目。當(dāng)然你可以用 GD2 或者 imagemagick(magickwand) 來干同樣的事情,但 phpThumb 是專門干這個的。它用起來相當(dāng)簡單:
<img src="phpthumb/phpThumb.php?src=myimage.jpg&w=100&h=100">
如果訪問量很大的話就撐不住了,因?yàn)?apache 要為每個圖片的請求去調(diào) PHP 來解析 phpThumb 的代碼。盡管 phpThumb 自己有緩存,它還是要調(diào) PHP 來決定是否從緩存里讀。
我曾經(jīng)看見有人用 mod_rewrite 把不存在的圖片重定向到一個可以生成縮略圖的腳本,以此來解決性能問題:
你需要:
Apache
mod_rewrite
PHP
這些東西通常虛擬主機(jī)都有,至于怎么安裝就不在本文的討論范圍之內(nèi)了。
OK,快告訴我怎么弄吧!
上傳 phpThumb
從這里下載 phpThumb: http://phpthumb.sourceforge.net/ ,把它上傳到 yoursite.com/phpthumb
配置 Mod_Rewrite
新建 yoursite.com/thumbs/.htaccess :
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?thumb=$1 [L,QSA]
</IfModule>
新建縮略圖生成腳本:
新建 yoursite.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','<SPAN class=caps>FFFFFF</SPAN>'); // 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 目錄,應(yīng)該有個縮略圖在那。下次訪問就不用調(diào) PHP 啦。
官方網(wǎng)站 http://phpthumb.gxdlabs.com/
一些有用的參數(shù)列一下:
src:目標(biāo)圖片的地址
w:輸出圖片的寬度
h:輸出圖片的高度(如果不指定他將按w參數(shù)等比縮放)
q:輸出如果是JPG格式的,可以規(guī)定它的輸出質(zhì)量
bg:輸出時的背景(如果需要)
sw、sh、sx、sy:局部輸出,寬高、起始位置
f:輸出格式,可以為jpeg、png、gif、ico
sfn:輸出gif動畫中的某一幀
fltr[]:濾鏡,可以有很多效果,包括銳化、模糊、旋翻轉(zhuǎn)、水印、邊框、遮照、色彩調(diào)整等
更多效果可以參看官方例程:
http://phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php
使用 phpThumb 和 .htaccess 來緩存縮略圖
原理:用戶訪問 your.com/thumbs/images/image.50×50.jpg 這樣的網(wǎng)址,腳本生成 your.com/images/image.jpg 的縮略圖,并且保存到 your.com/thumbs/images/image.50×50.jpg,下次訪問就不用調(diào) PHP 啦。
簡介
大約一年以前我碰到了 phpThumb 這個牛掰的腳本,它是個用來縮放圖片的開源項(xiàng)目。當(dāng)然你可以用 GD2 或者 imagemagick(magickwand) 來干同樣的事情,但 phpThumb 是專門干這個的。它用起來相當(dāng)簡單:
<img src="phpthumb/phpThumb.php?src=myimage.jpg&w=100&h=100">
如果訪問量很大的話就撐不住了,因?yàn)?apache 要為每個圖片的請求去調(diào) PHP 來解析 phpThumb 的代碼。盡管 phpThumb 自己有緩存,它還是要調(diào) PHP 來決定是否從緩存里讀。
我曾經(jīng)看見有人用 mod_rewrite 把不存在的圖片重定向到一個可以生成縮略圖的腳本,以此來解決性能問題:
你需要:
Apache
mod_rewrite
PHP
這些東西通常虛擬主機(jī)都有,至于怎么安裝就不在本文的討論范圍之內(nèi)了。
OK,快告訴我怎么弄吧!
上傳 phpThumb
從這里下載 phpThumb: http://phpthumb.sourceforge.net/ ,把它上傳到 yoursite.com/phpthumb
配置 Mod_Rewrite
新建 yoursite.com/thumbs/.htaccess :
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?thumb=$1 [L,QSA]
</IfModule>
新建縮略圖生成腳本:
新建 yoursite.com/thumbs/index.php
復(fù)制代碼 代碼如下:
$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','<SPAN class=caps>FFFFFF</SPAN>'); // 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 目錄,應(yīng)該有個縮略圖在那。下次訪問就不用調(diào) PHP 啦。
官方網(wǎng)站 http://phpthumb.gxdlabs.com/
您可能感興趣的文章:
- php+js實(shí)現(xiàn)圖片的上傳、裁剪、預(yù)覽、提交示例
- php使用imagick模塊實(shí)現(xiàn)圖片縮放、裁剪、壓縮示例
- PHP圖片裁剪函數(shù)(保持圖像不變形)
- 使用gd庫實(shí)現(xiàn)php服務(wù)端圖片裁剪和生成縮略圖功能分享
- php圖片的裁剪與縮放生成符合需求的縮略圖
- PHP 裁剪圖片成固定大小代碼方法
- PHP圖片處理之使用imagecopyresampled函數(shù)裁剪圖片例子
- PHP加Nginx實(shí)現(xiàn)動態(tài)裁剪圖片方案
- PHP實(shí)現(xiàn)圖片裁剪、添加水印效果代碼
- PHP實(shí)現(xiàn)圖片不變型裁剪及圖片按比例裁剪的方法
- 用來給圖片加水印的PHP類
- PHP全功能無變形圖片裁剪操作類與用法示例
- PHPThumb自動圖片縮略圖類 下載
相關(guān)文章
PHP排序算法之希爾排序(Shell Sort)實(shí)例分析
這篇文章主要介紹了PHP排序算法之希爾排序(Shell Sort),結(jié)合實(shí)例形式較為詳細(xì)的分析了希爾排序的原理、實(shí)現(xiàn)方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2018-04-04PHP實(shí)現(xiàn)的sqlite數(shù)據(jù)庫連接類
這篇文章主要介紹了PHP實(shí)現(xiàn)的sqlite數(shù)據(jù)庫連接類,涉及針對SQLite數(shù)據(jù)庫的連接與增刪改查等sql操作用法,非常具有實(shí)用價值,需要的朋友可以參考下2014-12-12php實(shí)現(xiàn)通過soap調(diào)用.Net的WebService asmx文件
這篇文章主要介紹了php實(shí)現(xiàn)通過soap調(diào)用.Net的WebService asmx文件,結(jié)合實(shí)例形式分析了php使用soap實(shí)現(xiàn)WebService接口的調(diào)用技巧,需要的朋友可以參考下2017-02-02如何使用PHP實(shí)現(xiàn)javascript的escape和unescape函數(shù)
本篇文章是對使用PHP實(shí)現(xiàn)javascript的escape和unescape函數(shù)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php實(shí)現(xiàn)圖片文件與下載文件防盜鏈的方法
這篇文章主要介紹了php實(shí)現(xiàn)圖片文件與下載文件防盜鏈的方法,包括了常用的操作方法與服務(wù)器端配置方法等,非常具有實(shí)用價值,需要的朋友可以參考下2014-11-11