php处理thumb文件夹,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 是专门干这个的。它用起来相当简单: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 :

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?thumb=$1 [L,QSA]

新建缩略图生成脚本:

新建 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','FFFFFF'); // scale outside

if ($phpThumb->GenerateThumbnail()) {

mkdir(dirname($thumb),0777,true);

if ($phpThumb->RenderToFile($thumb)) {

header('Location: /thumbs/'.$thumb);

exit;

}

}

}

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

php图片裁剪与缩略图使用实例讲解

php preg_match匹配字符串长度案例解析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值