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学习笔记之一
Jan 17 PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 PHP
解析php安全性问题中的:Null 字符问题
Jun 21 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
Apr 08 PHP
php分页函数完整实例代码
Sep 22 PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 PHP
PHP 数组遍历foreach语法结构及实例
Jun 13 PHP
PHP+JQuery+Ajax实现分页方法详解
Aug 06 PHP
Zend Framework常用校验器详解
Dec 09 PHP
php支付宝APP支付功能
Jul 29 PHP
Laravel框架自定义验证过程实例分析
Feb 01 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
May 27 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和AJAX创建RSS聚合器的代码
2007/03/13 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
php操作access数据库的方法详解
2017/02/22 PHP
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
基于JavaScript实现前端文件的断点续传
2016/10/17 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
详解如何让Express支持async/await
2017/10/09 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
使用webpack/gulp构建TypeScript项目的方法示例
2019/12/18 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
2015/12/31 Python
Python多线程threading和multiprocessing模块实例解析
2018/01/29 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
Python之list对应元素求和的方法
2018/06/28 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
Python中logger日志模块详解
2020/08/04 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
英国航空官网:British Airways
2016/09/11 全球购物
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
《美丽的公鸡》教学反思
2014/02/25 职场文书
超市店庆活动方案
2014/08/31 职场文书
2015年消防工作总结
2015/04/24 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
Django实现在线无水印抖音视频下载(附源码及地址)
2021/05/06 Python
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs
怎么禁用Win11输入法 最新Win11输入法关闭教程
2022/08/05 数码科技