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 函数学习简单小结
Jul 08 PHP
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
PHP二维数组的去重问题解析
Jul 17 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
Sep 19 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
PHP+Ajax实时自动检测是否联网的方法
Jul 01 PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 PHP
PHP实现的简单缓存类
Jul 29 PHP
php中ob函数缓冲机制深入理解
Aug 03 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
May 25 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
php md5下16位和32位的实现代码
2008/04/09 PHP
php 中文和编码判断代码
2010/05/16 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
PHP中余数、取余的妙用
2015/06/29 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
PHP获取远程http或ftp文件的md5值的方法
2019/04/15 PHP
用一段js程序来实现动画功能
2007/03/06 Javascript
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
javascript new后的constructor属性
2010/08/05 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
自己动手封装一个React Native多级联动
2018/09/19 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
2019/10/22 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
Python实现数据库编程方法详解
2015/06/09 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
python zip()函数使用方法解析
2019/10/31 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
python重要函数eval多种用法解析
2020/01/14 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
《花木兰》教学反思
2014/04/09 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
行政处罚事先告知书
2015/07/01 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书