PHP图片处理类 phpThumb参数用法介绍


Posted in PHP onMarch 11, 2012

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 啦。
简介
大约一年以前我碰到了 phpThumb 这个牛掰的脚本,它是个用来缩放图片的开源项目。当然你可以用 GD2 或者 imagemagick(magickwand) 来干同样的事情,但 phpThumb 是专门干这个的。它用起来相当简单:
<img src="phpthumb/phpThumb.php?src=myimage.jpg&w=100&h=100">
如果访问量很大的话就撑不住了,因为 apache 要为每个图片的请求去调 PHP 来解析 phpThumb 的代码。尽管 phpThumb 自己有缓存,它还是要调 PHP 来决定是否从缓存里读。
我曾经看见有人用 mod_rewrite 把不存在的图片重定向到一个可以生成缩略图的脚本,以此来解决性能问题:
你需要:
Apache
mod_rewrite
PHP
这些东西通常虚拟主机都有,至于怎么安装就不在本文的讨论范围之内了。
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 目录,应该有个缩略图在那。下次访问就不用调 PHP 啦。
官方网站 http://phpthumb.gxdlabs.com/
PHP 相关文章推荐
探讨捕获php错误信息方法的详解
Jun 09 PHP
PHP操作Memcache实例介绍
Jun 14 PHP
使用php记录用户通过搜索引擎进网站的关键词
Feb 13 PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
PHP也能干大事 随机函数
Apr 14 PHP
php实现的mysqldb读写分离操作类示例
Feb 07 PHP
Yii2中多表关联查询hasOne hasMany的方法
Feb 15 PHP
ZendFramework2连接数据库操作实例
Apr 18 PHP
PHP编程计算日期间隔天数的方法
Apr 26 PHP
php关联数组与索引数组及其显示方法
Mar 12 PHP
PHP获取访问设备信息的方法示例
Feb 20 PHP
Yii 框架入口脚本示例分析
May 19 PHP
PHPThumb PHP 图片缩略图库
Mar 11 #PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 #PHP
PHP 代码规范小结
Mar 08 #PHP
色色整理的PHP面试题集锦
Mar 08 #PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
Mar 07 #PHP
php打造属于自己的MVC框架
Mar 07 #PHP
smarty巧妙处理iframe中内容页的代码
Mar 07 #PHP
You might like
Yii配置文件用法详解
2014/12/04 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
PHP二维数组去重算法
2016/12/17 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
用javascript为页面添加天气显示实现思路及代码
2013/12/02 Javascript
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
python正则实现提取电话功能
2018/02/24 Python
Python设计模式之状态模式原理与用法详解
2019/01/15 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
python对一个数向上取整的实例方法
2020/06/18 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
会计实习期自我鉴定
2013/10/06 职场文书
法人授权委托书范本
2014/04/04 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
清明节演讲稿
2014/05/27 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
股权转让协议书
2014/12/07 职场文书
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers
pandas进行数据输入和输出的方法详解
2022/03/23 Python
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS