%09 %300 %2015 %14:%一 %PM

Joomla中图像的处理 - JImage

作者
给本项目评分
(11 得票数)

计划在商城上实现缩略图的功能,本想自己弄一个php的类来专门处理。后来在joomla的库中看到了一个类JImage。当即就十分欣喜,看来Joomla想得还是挺周到的。就读了一下JImage类的源代码。下面简单的介绍一下我对JImage类的理解。

 这个类的文件位置在:\libraries\joomla\image\image.php。如果想研究代码,可以看看这个文件。

JImage这个类提供了一个构造函数 ,构造函数可以接受一个参数,就是需要处理的图片的路径。在构造函数中,系统会检查你的php环境是否支持gd库,以及gd库所支持的文件类型。因此,关于环境方面的问题,JImage已经帮处理妥当了。

JImage类提供了一个静态方法 getImageFileProperties($path),该参数接受一个参数,就是图片的路径。返回一个对象,通过这个对象你可以得到图片的一些信息,比喻width,height,type等等。它的实现非常简单,就是简单的嚼用php的getiamgesize函数。

产生缩略图是一个比较常见的功能,JImage类提供了一个公开的方法 public function generaterThumbs($thumbsizes,$createionMethod=self::SCALE_INSIDE)

第一个参数表示要产生缩略图的大小,可以用数字或者字符串制定,例如 100*100 array('150x75','250x150');

第二个参数可以不写。默认是self::SACLE_INSIDE.主要是用来制定,产生缩略图的方式,调整大小原始图像的大小或者是裁剪原始图像。(具体代表啥意思,暂时还不清楚)

另外,还有一个createThumbs($thumbSizes ,$creationMethod ,$thumbsFolder=null)

这个函数的功能是从当前的图片创建一个缩略图,并且保存到硬盘。可以制定缩略图的文件夹的位置。

public function crop($width, $height, $left = null, $top = null, $createNew = true)  修剪当前的图片。最后一个参数是说是否创建一个新的图片,如果是的,那么克隆一个当前的图,然后处理返回。否则直接返回原图。

public function filter($type, array $options = array()) 给图片增加一个滤镜效果。可以使用 灰阶(grayscale) 模糊( skeetchy)

public function resize($width, $height, $createNew = true, $scaleMethod = self::SCALE_INSIDE) 调整图像的大小。

public function cropResize($width, $height, $createNew = true) 裁剪调整

public function rotate($angle, $background = -1, $createNew = true) 旋转当前图片

public function loadFile($path) 加载一个文件用来构建JImage对象

public function toFile($path, $type = IMAGETYPE_JPEG, array $options = array()) 将图片保存到硬盘

public function destroy() 销毁图片。默认的构造函数会自动调用这个函数,执行资源释放。

 

另外,还提供一些简单的公共属性获得函数:

public function isLoaded() 是否已经加载了图片

public function isTransparent() 是否透明

public function getWidth()  获得宽度

public function getHeight() 获得高度

public function getPath() 获得路径

下面 具体看一下代码:

$img = new JImage();
$filePath="test.gif";
$img->loadFile($filePath);
//将图标装入对象,以便进行操作


 $img->getHeight()  //得到高度  单位px
 $img->getWidth()  //得到宽度  单位px
 $img->getPath()  //路径 全路径

$img->crop(30,50,20,20,true)->toFile('test.png',IMAGETYPE_PNG);
//裁剪图标,并且生存新的文件 注意新的文件在网站的根目录下面


$img->resize(50,30)->toFile('resize.png',IMAGETYPE_PNG);;
//按照比例来产生图片

$img->rotate(30,0xFF0000)->crop(60,60)->resize(50,50)->toFile('rotate.png',IMAGETYPE_PNG);
//旋转图片 并且进行剪切 然后缩放 存盘

$img->cropResize(20,40)->toFile('cropresize.png',IMAGETYPE_PNG); //能够得到我们想要的大小

$img->filter("sketchy")->toFile('filter.png',IMAGETYPE_PNG); 
//给图片增加效果

$thumbSizes = array('150x75');
$img->createThumbs($thumbSizes);
//同事创建多个缩略图

 

 

 

 

 

 

 

 

阅读 8426 次数 最后修改于 %09 %592 %2015 %21:%一 %PM
此类别中更多的: « Joomla2.5MVC剖析