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 相关文章推荐
基于文本的搜索
Oct 09 PHP
一个用mysql_odbc和php写的serach数据库程序
Oct 09 PHP
用来解析.htpasswd文件的PHP类
Sep 05 PHP
php curl获取网页内容(IPV6下超时)的解决办法
Jul 16 PHP
PHP采用XML-RPC构造Web Service实例教程
Jul 16 PHP
ThinkPHP添加更新标签的方法
Dec 05 PHP
php格式化金额函数分享
Feb 02 PHP
PHP中类的继承和用法实例分析
May 24 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
PHP编程求最大公约数与最小公倍数的方法示例
May 29 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
Jun 06 PHP
PHP Include文件实例讲解
Feb 15 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
PHP&amp;MYSQL服务器配置说明
2006/10/09 PHP
php数组中删除元素之重新索引的方法
2014/09/16 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
理解JavaScript的caller,callee,call,apply
2009/04/28 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
vue-cli3项目升级到vue-cli4 的方法总结
2020/03/19 Javascript
Python代理IP爬虫的新手使用教程
2019/09/05 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
python 中不同包 类 方法 之间的调用详解
2020/03/09 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
Python如何解除一个装饰器
2020/08/07 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
普通大学毕业生自荐信
2013/11/04 职场文书
syb养殖创业计划书
2014/01/09 职场文书
大学生自我鉴定范文模板
2014/01/21 职场文书
公休请假条
2014/04/11 职场文书
工作评语大全
2014/04/26 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers
详解如何使用Nginx解决跨域问题
2022/05/06 Servers