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 相关文章推荐
怎么使 Mysql 数据同步
Oct 09 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
ThinkPHP采用实现三级循环代码实例
Jul 18 PHP
Laravel框架表单验证详解
Sep 04 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
Symfony2框架学习笔记之表单用法详解
Mar 18 PHP
PHP数组函数知识汇总
May 12 PHP
Yii2 rbac权限控制之rule教程详解
Jun 23 PHP
PHP简单实现冒泡排序的方法
Dec 26 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
php TP5框架生成二维码链接
Apr 01 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 while循环得到循环次数
2013/10/26 PHP
php使用反射插入对象示例分享
2014/03/11 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
JS 遮照层实现代码
2010/03/31 Javascript
jquery实现预览提交的表单代码分享
2014/05/21 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
jQuery简单实现隐藏以及显示特效
2015/02/26 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
Node.js中sequelize时区的配置方法
2017/12/10 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
nodejs微信开发之自动回复的实现
2019/03/17 NodeJs
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
Python入门学习之字符串与比较运算符
2015/10/12 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
Python模块结构与布局操作方法实例分析
2017/07/24 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
信息工程学院毕业生推荐信
2013/11/05 职场文书
慈善晚会策划方案
2014/05/14 职场文书
加油口号大全
2014/06/13 职场文书
博士生求职信
2014/07/06 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
《分数乘法》教学反思
2016/02/24 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python