Image使用说明

DoitPHP扩展类Image,用于生成一个图片的缩略图,以及水印图片的生成。当然也支持生成图片的在线显示。注:本类所支持的图片格式为:jpg(jpeg), png, gif(静态), bmp。

类方法使用说明

1、makeThumbnail($url, $distName = null)

生成图片的缩略图.
参数说明:
$url : 原始图片路径
$distName : 生成图片的路径(注:无须后缀名)

2、makeTextWatermark($imageUrl, $distName = null)

生成文字水印图片.
参数说明:
$imageUrl : 背景图片的路径
$distName : 路径目标图片的

3、makeImageWatermark($imageUrl, $distName = null)

生成图片水印.
参数说明:
$imageUrl : 原始图片的路径
$distName : 生成图片的路径(注:不含图片后缀名)

4、setFontName($name, $size = null)

设置字体名称.
参数说明:
$name : 字体名称(字体的路径)
$size : 字体大小

5、setFontSize($size)

设置字体大小.
参数说明:
$size : 字体大小

6、setFontColor($x = null, $y = null, $z = null)

获取颜色参数.
参数说明:
$x : RGB色彩中的R的数值
$y : RGB色彩中的G的数值
$z : RGB色彩中的B的数值

7、setWatermarkImage($imagePath)

设置自定义水印图片的路径
参数说明:
$imagePath : 图片的路径(图片的实际地址)

8、setImageSize($width, $height)

设置生成图片的大小.
参数说明:
$width : 图片的宽度
$height : 图片的高度

9、setTextContent($content)

设置文字水印字符串内容.
参数说明:
$content : 文字内容

10、setTextPosition($x, $y)

设置文字水印图片文字的坐标位置.
参数说明:
$x : 水印区域的横坐标
$y : 水印区域的纵坐标

11、setWatermarkPosition($x, $y)

设置水印图片水印的坐标位置.
参数说明:
$x : 水印区域的横坐标
$y : 水印区域的纵坐标

12、setWatermarkAlpha($param)

设置水印图片水印区域的透明度.
参数说明:
$param : 水印区域的透明度

举例说明

例一、生成缩略图

Controller文件代码内容如下:

public function indexAction() {

    $imageObj = $this->instance('Image');

    $imagePath = 'D:/Downloads/zhanghanyun.jpg';
    $distPath  = 'D:/Downloads/demo';

    $imageObj->setImageSize(120, 90)
        ->makeThumbnail($imagePath, $distPath);    
}

注: 注:这里的setImageSize(120, 90),所生成的缩略并不是绝对宽为120px, 高为90px。程序会根据被生成缩略图的实际宽和高的比例自动计算出一个合理的所要生成的缩略图的宽和高。这个计算后的宽和高都将会在宽为120px,高为90px的限制之内。

运行调试结果:在D:/DownLoad文件夹内生成一张demo.jpg的图片。调试成功!

例二、生成文字水印

Controller文件代码内容如下:

public function indexAction() {

    $imageObj = $this->instance('Image');

    $imagePath = 'D:/Downloads/zhanghanyun.jpg';
    $distPath  = 'D:/Downloads/plmm';

    $imageObj->setImageSize(200, 150)->setTextContent('PLMM')
        ->makeTextWatermark($imagePath, $distPath);    
}

运行调试结果:在D:/DownLoad文件夹内生成一张plmm.jpg的图片,如下:

注:观注上图右下角。setImageSize(200, 150),这是对图片进行了缩放后然后再此基础上加上文字水印。使用本类函数:setFontName()来设置一个支持汉字的字体,水印文字可以支持中文,本类默认的字体不支持中文,特此公告。水印文字的位置可以使用本类函数:setTextPosition()来定义。

例三、生成图片水印

Controller文件代码内容如下:

public function indexAction() {

    $imageObj = $this->instance('Image');

    $imagePath = 'D:/Downloads/zhanghanyun.jpg';
    $distPath  = 'D:/Downloads/plmm';

    $imageObj->makeImageWatermark($imagePath, $distPath);    
}

注:这里如果没有定义用来作水印的图片。程序默认为:框架文件目录(doitphp)下views/source目录下watermark.jpg(图片的后缀名程序会根据所要生成的图片的格式自行选择,如果原图片为png格式,这里就是watermark.png)。如果定义了水印图片,情况就不再是这样了,请看“例四”。

运行结果:在D:/DownLoad文件夹内生成一张plmm.jpg的图片,如下:

例四、自定义水印图片

Controller文件代码内容如下:

public function indexAction() {

    $imageObj = $this->instance('Image');

    $imagePath = 'D:/Downloads/zhanghanyun.jpg';
    $distPath  = 'D:/Downloads/plmm';

    $icoImgPath = BASH_PATH . '/assets/images/ico.jpg';

    $imageObj->setWatermarkImage($icoImgPath)
    ->makeImageWatermark($imagePath, $distPath);    
}

注:这里定义的水印图片格式没有明确的限制。当然是本类所支持的图片格式啦(jpg, gif, png, bmp)。如果定义的水印图片格式为:jpg(或pgn,或gif),同样可以用作其它格式图片生成水印图片。对于gif动态图片,使用本类无论是生成缩略图,生成水印图片,结果生成的图片都是静态的。当然啦,生成图片时也支持图片缩放。

运行结果:在D:/DownLoad文件夹内生成一张plmm.jpg的图片,如下: