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版(5)
Oct 09 PHP
php5新改动之短标记启用方法
Sep 11 PHP
php 变量定义方法
Jun 14 PHP
PHP 超链接 抓取实现代码
Jun 29 PHP
PHP JSON格式数据交互实例代码详解
Jan 13 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
PHP Callable强制指定回调类型的方法
Aug 30 PHP
PHP中字符与字节的区别及字符串与字节转换示例
Oct 15 PHP
PHP+MYSQL实现读写分离简单实战
Mar 13 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
thinkPHP5框架导出Excel文件简单操作示例
Aug 03 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.ini中文版
2006/10/09 PHP
PHP MSSQL 存储过程的方法
2008/12/24 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
2014/04/21 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
html+js实现简单的计算器代码(加减乘除)
2016/07/12 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
2017/03/24 jQuery
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
2018/09/25 Javascript
js中位运算的运用实例分析
2018/12/11 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
python简单实现旋转图片的方法
2015/05/30 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
2019/07/06 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
解决Django连接db遇到的问题
2019/08/29 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
高中体育教学反思
2014/01/24 职场文书
护士自我评价范文
2014/01/25 职场文书
安全责任书范文
2014/03/12 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python