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的FTP学习(二)[转自奥索]
Oct 09 PHP
用来给图片加水印的PHP类
Apr 09 PHP
PHP 数组基础知识小结
Aug 20 PHP
几种有用的变型 PHP中循环语句的用法介绍
Jan 30 PHP
PHP中的函数-- foreach()的用法详解
Jun 24 PHP
php使用mkdir创建多级目录入门例子
May 10 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 PHP
如何使用GDB调试PHP程序
Dec 08 PHP
一个简单的php MVC留言本实例代码(必看篇)
Sep 22 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 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生成带有雪花背景的验证码
2006/10/09 PHP
php中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
js指定日期增加指定月份的实现方法
2018/12/19 Javascript
使用element-ui table expand展开行实现手风琴效果
2019/03/15 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
Python random模块常用方法
2014/11/03 Python
老生常谈Python序列化和反序列化
2017/06/28 Python
物业公司采购员岗位职责
2013/12/31 职场文书
期末自我鉴定
2014/02/02 职场文书
优秀学生事迹材料
2014/02/08 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
医学生临床实习自我评价
2014/03/07 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
2014最新毕业证代领委托书
2014/09/26 职场文书
2015新年寄语大全
2014/12/08 职场文书
2014年底工作总结
2014/12/15 职场文书
董事长助理岗位职责
2015/02/11 职场文书
2015年五一劳动节演讲稿
2015/03/18 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
小学安全工作总结2015
2015/05/18 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
Python 键盘事件详解
2021/11/11 Python