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 04 PHP
php下连接mssql2005的代码
Jan 17 PHP
php数组函数序列之array_keys() - 获取数组键名
Oct 30 PHP
解析php中heredoc的使用方法
Jun 17 PHP
非常好用的Zend Framework分页类
Jun 25 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
Sep 06 PHP
Smarty中常用变量操作符汇总
Oct 27 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
smarty内置函数config_load用法实例
Jan 22 PHP
php清除和销毁session的方法分析
Mar 19 PHP
php 7新特性之类型申明详解
Jun 06 PHP
PHP实现从上往下打印二叉树的方法
Jan 18 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
php2html php生成静态页函数
2008/12/08 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
bootstrap导航、选项卡实现代码
2016/12/28 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
python实现简单ftp客户端的方法
2015/06/28 Python
在Django的视图(View)外使用Session的方法
2015/07/23 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
Python如何用filter函数筛选数据
2020/03/05 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
质检员的岗位职责
2013/11/15 职场文书
分厂厂长岗位职责
2013/12/29 职场文书
中文师范生自荐信
2014/01/30 职场文书
自荐信如何制作?
2014/02/21 职场文书
实习生评语
2014/04/26 职场文书
骨干教师考核评语
2014/12/31 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
Python天气语音播报小助手
2021/09/25 Python
Pandas-DataFrame知识点汇总
2022/03/16 Python