现在的位置: 首页 > PHP开发 > 正文
PHP图片处理类 phpThumb参数用法介绍
2013年07月16日 PHP开发 ⁄ 共 2352字 暂无评论 ⁄ 被围观 1,282 views+
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/

给我留言

您必须 [ 登录 ] 才能发表留言!