您好,欢迎访问一九零五行业门户网

PHP图片处理类phpThumb使用详解

这次给大家带来php图片处理类phpthumb使用详解,php图片处理类phpthumb使用的注意事项有哪些,下面就是实战案例,一起来看一下。
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; } } }
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
php图片裁剪与缩略图使用实例讲解
php preg_match匹配字符串长度案例解析
以上就是php图片处理类phpthumb使用详解的详细内容。
其它类似信息

推荐信息