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 相关文章推荐
PHPMYADMIN 简明安装教程 推荐
Mar 07 PHP
PHP生成excel时单元格内换行问题的解决方法
Aug 26 PHP
php去掉字符串的最后一个字符附substr()的用法
Mar 23 PHP
php 数据库字段复用的基本原理与示例
Jul 22 PHP
PHP原生模板引擎 最简单的模板引擎
Apr 25 PHP
Linux环境下搭建php开发环境的操作步骤
Jun 17 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
Apr 22 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 PHP
PHP Web表单生成器案例分析
Jun 02 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下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
javascript 拷贝节点cloneNode()使用介绍
2014/04/03 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
js实现楼层效果的简单实例
2016/07/15 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
VUE+node(express)实现前后端分离
2019/10/13 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
在Python中使用dict和set方法的教程
2015/04/27 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
Python基于time模块求程序运行时间的方法
2017/09/18 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
Python Celery多队列配置代码实例
2019/11/22 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
测控技术与通信工程毕业生自荐信范文
2013/12/28 职场文书
咖啡馆创业计划书
2014/01/26 职场文书
2014年五一劳动节社区活动总结
2014/04/14 职场文书
学校四群教育实施方案
2014/06/12 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
话题作文之呼唤
2019/12/18 职场文书
springcloud之Feign超时问题的解决
2021/06/24 Java/Android