PHP图片处理类 phpThumb参数用法介绍
2015-01-24信息快讯网
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; } } }
测试一下!
上传一张图片到 yoursite.com/images/myimage.jpg
打开你的浏览器,访问 yoursite.com/thumbs/images/myimage.100×100.jpg
检查 thumbs 目录,应该有个缩略图在那。下次访问就不用调 PHP 啦。
官方网站 http://phpthumb.gxdlabs.com/
PHPThumb图片处理实例
解析php中两种缩放图片的函数,为图片添加水印
PHP操作Memcache实例介绍
解析PHP处理换行符的问题 \r\n
基于PHP5魔术常量与魔术方法的详解
基于PHPExcel的常用方法总结
php缩放图片(根据宽高的等比例缩放)实例介绍
如何使用php绘制在图片上的正余弦曲线
探讨PHP中this,self,parent的区别详解
深入php self与$this的详解
如何用php生成扭曲及旋转的验证码图片
利用PHP实现图片等比例放大和缩小的方法详解
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
基于python发送邮件的乱码问题的解决办法
Notice: Trying to get property of non-object problem(PHP)解决办法
PHPThumb PHP 图片缩略图库
php中使用cookie来保存用户登录信息的实现代码
PHP 代码规范小结
色色整理的PHP面试题集锦
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
ThinkPHP写第一个模块应用
Uncaught exception com_exception with message Failed to create COM object
php中通过正则表达式下载内容中的远程图片的函数代码
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
PHP提取字符串中的图片地址[正则表达式]
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
PHP支持多种格式图片上传(支持jpg、png、gif)
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)