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中使用模板的方法
May 24 PHP
php error_log 函数的使用
Apr 13 PHP
shopex中集成的站长统计功能的代码简单分析
Aug 11 PHP
基于php-fpm 参数的深入理解
Jun 03 PHP
php自动加载机制的深入分析
Jun 08 PHP
php实现的简易扫雷游戏实例
Jul 09 PHP
PHP从数组中删除元素的四种方法实例
May 12 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 03 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
Dec 12 PHP
TP5框架实现的数据库备份功能示例
Apr 05 PHP
phpstorm激活码2020附使用详细教程
Sep 25 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
自动跳转中英文页面
2006/10/09 PHP
php adodb分页实现代码
2009/03/19 PHP
php中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
js 小贴士一星期合集
2010/04/07 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
Gulp实现静态网页模块化的方法详解
2018/01/09 Javascript
vue自定义filters过滤器
2018/04/26 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
python循环输出三角形图案的例子
2019/11/22 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
html5 利用canvas手写签名并保存的实现方法
2018/07/12 HTML / CSS
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
办公室主任职责范文
2013/11/08 职场文书
销售人员自我评价
2014/02/01 职场文书
自主招生自荐信指南
2014/02/04 职场文书
大学生推广普通话演讲稿
2014/09/21 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
死亡赔偿协议书
2015/01/28 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
导游词之桂林山水
2019/09/20 职场文书