ginkgo


图片处理

图片处理功能由 ginkgo\Image 完成。


打开图片

假设当前入口文件目录下面有一个 image.png 文件

使用 open 方法打开图片进行相关操作:

use ginkgo\Image;

$image = Image::instance();

$image->open('./image.png');

获取图片信息

use ginkgo\Image;

$image = Image::instance();

$image->open('./image.png');

$width = $image->width(); 
// 返回图片的高度
$height = $image->height(); 
// 返回图片的扩展名
$ext = $image->ext(); 
// 返回图片的 mime 类型
$mime = $image->mime(); 
// 返回图片的尺寸数组 0 图片宽度 1 图片高度
$size = $image->size(); 

裁剪图片

use ginkgo\Image;

$image = Image::instance();

$image->open('./image.png');

//将图片裁剪为 300x300 并保存为 crop.png
$image->crop(300, 300)->save(false, 'crop.png');

支持从某个坐标开始裁剪,例如从(100, 30)开始裁剪:

use ginkgo\Image;

$image = Image::instance();

$image->open('./image.png');

$image->crop(300, 300, 100, 30)->save(false, 'crop.png');

生成缩略图

use ginkgo\Image;

$image = Image::instance();

$image->open('./image.png');

$image->thumb(150, 150)->save(false, 'thumb.png');

默认采用等比例缩放的方式生成,也支持裁切方式生成,如:

use ginkgo\Image;

$image = Image::instance();

$image->open('./image.png');

$image->thumb(150, 150, 'crop')->save(false, 'thumb.png');

缩略图的两种生成方式说明

缩略图的两种生成方式说明

支持批量生成缩略图,如:

use ginkgo\Image;

$image = Image::instance();

$image->open('./image.png');

$thumb = array(
    array(
        'thumb_width'   => 100,
        'thumb_height'  => 100,
        'thumb_type'    => 'ratio',
    ),
    array(
        'thumb_width'   => 150,
        'thumb_height'  => 200,
        'thumb_type'    => 'crop',
    ),
);
$image->batThumb($thumb);

批量生成缩略图会自动调用 save 方法。


图片保存

save 方法可以实现图片保存

save 方法说明

function save( [$path = false [, $name = false [, $type = false [, $quality = 90 [, $interlace = true]]]]] )

参数

  • path 保存目录

    此参数为 false 时,与原图片同目录。

  • name 文件名

    此参数为 false 时,系统会自动生成。

  • type 保存类型

    name 参数指定了扩展名,则系统将按照扩展名类型保存,此参数自动失效。

    可能的值

    描述
    false(默认值) 系原图片相同
    jpe JPG 图片
    jpg JPG 图片
    jpeg JPG 图片
    pjpeg JPG 图片
    gif GIF 图片
    png PNG 图片
    x-png PNG 图片
    bmp BMP 图片
    x-ms-bmp BMP 图片
    x-windows-bmp BMP 图片
  • quality 图片质量

    仅对 JPG 有效,默认为 90

  • interlace 是否设置隔行扫描

    仅对 JPG 有效,默认为 true

设置隔行扫描的情况下,浏览时是从上到下逐行显示,否则图片是由模糊到清晰整个显示。