PHP图片处理类 phpThumb参数(转)

原文地址:http://www.jbxue.com/article/php/20251.html

phpThumb几个基本参数

一些有用的参数列一下:
src:目标图片的地址
w:输出图片的宽度
h:输出图片的高度(如果不指定他将按w参数等比缩放)

q:输出如果是JPG格式的,可以规定它的输出质量
bg:输出时的背景(如果需要)
sw、sh、sx、sy:局部输出,宽高、起始位置

f:输出格式,可以为jpeg、png、gif、ico
sfn:输出gif动画中的某一帧

fltr[]:滤镜,可以有很多效果,包括锐化、模糊、旋翻转、水印、边框、遮照、色彩调整等
更多效果可以参看官方例程:

使用 phpThumb 和 .htaccess 来缓存缩略图
原理:用户访问 /thumbs/images/image.50×50.jpg
这样的网址,脚本生成 /images/image.jpg 的缩略图,并且保存到 /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: ,把它上传到 /phpthumb
配置 Mod_Rewrite
新建 /thumbs/.htaccess :

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?thumb=$1 [L,QSA]
</IfModule>

新建缩略图生成脚本:
新建 /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;
}
}
}

测试方法:

上传一张图片到 /images/myimage.jpg
打开你的浏览器,访问 /thumbs/images/myimage.100×100.jpg

检查 thumbs 目录,应该有个缩略图在那。下次访问就不用调 PHP 啦。

您可能感兴趣的文章:



PHP图片处理类 phpThumb参数(转),布布扣,bubuko.com

时间: 2024-12-18 20:13:46

PHP图片处理类 phpThumb参数(转)的相关文章

图片处理类(图片水印 图片缩放)

本图片处理类功能非常之强大可以实现几乎所有WEB开发中对图像的处理功能都集成了,包括有缩放图像.切割图像.图像类型转换.彩色转黑白.文字水印.图片水印等功能 1 import java.awt.AlphaComposite; 2 import java.awt.Color; 3 import java.awt.Font; 4 import java.awt.Graphics; 5 import java.awt.Graphics2D; 6 import java.awt.Image; 7 imp

CircleImageManager ——将图片转换为圆形图片的类

package com.kale.utils; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PorterDuffXfermode; import android.g

20140526-一个从pdf转换成图片的类,工作当中有用到

20140526-一个从pdf转换成图片的类,工作当中有用到 package com.jako.database.model; import java.awt.Image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import

拍照、本地图片工具类(兼容至Android7.0)

拍照.本地图片工具类:解决了4.4以上剪裁会提示"找不到文件"和6.0动态授予权限,及7.0报FileUriExposedException异常问题. package com.hb.weex.util; import android.Manifest; import android.app.Activity; import android.app.Dialog; import android.content.ClipData; import android.content.Conten

PHP编写的图片验证码类文件分享方法

适用于自定义的验证码类! <?php /* * To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* and open the template in the editor.*/Class Image{ private $img;public $width = 85;public $h

Java图片工具类,完成图片的截取和任意缩放

package com.common.util; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.WritableRas

圆形 / 圆角图片工具类——CircleImageManager

这个类可以实现圆角,或者是圆形图片的操作. CircleImageManager.java package com.kale.utils; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import

PHP 图片缩放类

<?php /** * 图片压缩类:通过缩放来压缩. * 如果要保持源图比例,把参数$percent保持为1即可. * 即使原比例压缩,也可大幅度缩小.数码相机4M图片.也可以缩为700KB左右.如果缩小比例,则体积会更小. * * 结果:可保存.可直接显示. */ class imgcompress{ private $src; private $image; private $imageinfo; private $percent = 0.5; /** * 图片压缩 * @param $sr

图片工具类, 图片水印,文字水印,缩放,补白等

import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; import java.awt.geom.AffineTransform; import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; import