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高级对象构建 工厂模式的使用
Feb 05 PHP
PHP+MySQL投票系统的设计和实现分享
Sep 23 PHP
解析在zend Farmework下如何创立一个FORM表单
Jun 28 PHP
Php无限级栏目分类读取的实现代码
Feb 19 PHP
php 批量添加多行文本框textarea一行一个
Jun 03 PHP
为百度UE编辑器上传图片添加水印功能
Apr 16 PHP
php生成数字字母的验证码图片
Jul 14 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
Nov 09 PHP
关于PHP定时发送服务的解决办法
Apr 23 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
Nov 20 PHP
PHP使用OB缓存实现静态化功能示例
Mar 23 PHP
php统计数组不同元素的个数的实例方法
Sep 26 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函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
2016/12/28 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
原生js实现秒表计时器功能
2017/02/16 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
2017/05/24 jQuery
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
Python用模块pytz来转换时区
2016/08/19 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
Python谱减法语音降噪实例
2019/12/18 Python
Python如何使用字符打印照片
2020/01/03 Python
Python ATM功能实现代码实例
2020/03/19 Python
Python生成器常见问题及解决方案
2020/03/21 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
校优秀毕业生主要事迹
2014/05/26 职场文书
施工安全标语
2014/06/07 职场文书
篮球比赛通讯稿
2015/07/18 职场文书
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技