图片处理

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


打开图片

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

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

  1. use ginkgo\Image;
  2. $image = Image::instance();
  3. $image->open('./image.png');

获取图片信息

  1. use ginkgo\Image;
  2. $image = Image::instance();
  3. $image->open('./image.png');
  4. $width = $image->width();
  5. // 返回图片的高度
  6. $height = $image->height();
  7. // 返回图片的扩展名
  8. $ext = $image->ext();
  9. // 返回图片的 mime 类型
  10. $mime = $image->mime();
  11. // 返回图片的尺寸数组 0 图片宽度 1 图片高度
  12. $size = $image->size();

裁剪图片

  1. use ginkgo\Image;
  2. $image = Image::instance();
  3. $image->open('./image.png');
  4. //将图片裁剪为 300x300 并保存为 crop.png
  5. $image->crop(300, 300)->save(false, 'crop.png');

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

  1. use ginkgo\Image;
  2. $image = Image::instance();
  3. $image->open('./image.png');
  4. $image->crop(300, 300, 100, 30)->save(false, 'crop.png');

生成缩略图

  1. use ginkgo\Image;
  2. $image = Image::instance();
  3. $image->open('./image.png');
  4. $image->thumb(150, 150)->save(false, 'thumb.png');

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

  1. use ginkgo\Image;
  2. $image = Image::instance();
  3. $image->open('./image.png');
  4. $image->thumb(150, 150, 'crop')->save(false, 'thumb.png');

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

缩略图的两种生成方式说明{.img-fluid .bg-img}

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

  1. use ginkgo\Image;
  2. $image = Image::instance();
  3. $image->open('./image.png');
  4. $thumb = array(
  5. array(
  6. 'thumb_width' => 100,
  7. 'thumb_height' => 100,
  8. 'thumb_type' => 'ratio',
  9. ),
  10. array(
  11. 'thumb_width' => 150,
  12. 'thumb_height' => 200,
  13. 'thumb_type' => 'crop',
  14. ),
  15. );
  16. $image->batThumb($thumb);

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


图片保存

save 方法可以实现图片保存

save 方法说明

  1. 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

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