Imagine

Imagine 是一个面向对象的 PHP 类库用于图片操作。这个类库能够处理一些常用到的操作如:调整大小、裁剪、应用过滤器等。

其Color类库可用于对任意对定的颜色生成RGB值。并且还提供一些方法来绘制图形如:圆弧,椭圆,线,片等。

此外,还可以利用一个灵活的字体类来加载任意字体文件,然后将文字插入到图片中。

Imagine 是一个会经常更新的类库,将来还会实现:图表生成、圆角过滤器等功能。

Yii2 安装 Imagine

Imagine 的手动下载和安装这里就不做介绍了,可自行百度。这里介绍 Yii2 的 Composer 方式来安装 Imageine。

方法一

php composer.phar require --prefer-dist yiisoft/yii2-imagine

方法二

在项目 composer.json 文件内的 require 字段里添加如下代码:

"yiisoft/yii2-imagine": "~2.1.0"

然后再项目根目录下执行命令(cmd):

composer require yiisoft/yii2-imagine

Yii2 使用 Imagine

use yii\imagine\Image;

$srcImg = Yii::getAlias('@webroot/test.jpg');

$aimImg = Yii::getAlias('@webroot/testdeal.jpg');

$srcTTF = Yii::getAlias('@webroot/img/symbol.ttf');

// 缩略

// 参数 inset 表示定框缩略

// 图片完整缩略在 200x100 的框内

// 备注:定框的宽度或高度必须有一个小于图片的实际尺寸,否则直接返回源图尺寸

Image::thumbnail($srcImg, 200, 100, 'inset')->save($aimImg, ['quality'=>100]);

// 缩略

// 参数 outbound 表示单尺寸优先缩略并居中截取

// 该参数为函数的默认值,它会为您尽可能多的截取图片但又不会超出图片范围

// 例:源图 500x200,那么按照高度 100 缩略(变为250x100),然后再居中截取 200x100

// 例:源图 400x350,那么按照宽度 200 缩率(变为200x175),然后再居中截取 200x100

// 例:源图 100x80,那么不缩率不截取,直接返回源图 100x80

Image::thumbnail($srcImg, 200, 100, 'outbound')->save($aimImg, ['quality'=>100]);

// 缩略

// 按宽度 200 缩略,高度自适应

Image::thumbnail($srcImg, 200, null)->save($aimImg, ['quality'=>100]);

// 缩略

// 按高度 100 缩略,宽度自适应

Image::thumbnail($srcImg, null, 100)->save($aimImg, ['quality'=>100]);

// 剪切

// 参数:源图、宽度、高度、起始点

// 将源文件 $srcImg 保存到 $aimImg

Image::crop($srcImg, 400, 200, [100,100])->save($aimImg);

// 旋转

// 未研究

Image::frame('@webroot/img/test-image.jpg', 5, '666', 0)->rotate(-8)->save(Yii::getAlias('@webroot/img/thumb-test-frame.jpg'), ['quality' => 100]);

// 水印

// 未研究

Image::watermark('@webroot/img/test-image.jpg', '@webroot/img/watermark.jpg', [10,10])->save(Yii::getAlias('@webroot/img/thumb-test-watermark.jpg'), ['quality' => 100]);

// 文字水印

// 参数:源图、文字、字体、起始点、字体配置

Image::text($srcImg, 'hello world', $srcTTF, [100,100] ,['color'=>'000000','size'=>50])->save($aimImg, ['quality'=>100]);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

imagine php,Yii2第三方类库插件Imagine的安装和使用相关推荐

  1. yii2手动添加图片处理插件Imagine

    1.首先从官网下载yii2-imagine的拓展 下载地址:https://github.com/yiisoft/yii2-imagine 下载包名称:yii2-imagine-master 2.然后 ...

  2. webpack配置:打包第三方类库、第三方类库抽离、watch自动打包、集中拷贝静态资源...

    一.打包第三方类库 下面说2种方法: 第一种: 1.引入jQuery,首先安装: npm install --save-dev jquery 2.安装好后,在index.js中引入,用jquery语法 ...

  3. ThinkCMF引用第三方类库

    第三方类库存放的位置应该在:simplewind\Core\Library\Vendor\下,如下图: 箭头所指是我们新增的短信插件类. 如何使用呢: vendor('Ucpaas.Ucpaas',' ...

  4. Pycharm无法直接在Setting中添加第三方类库问题(已解决)

    前言:不知道小伙伴有没有碰到这样的情况:pycharm-setting直接安装第三方类库失败,只能通过手动命令行Terminal进行手动添加pip install --index-url https: ...

  5. 在typescript中导入第三方类库import报错

    问题 最近开始折腾typescript,在使用第三方类库,比如最常见的lodash,采用常规方法导入 import * as _ from 'lodash' vscode中报错提示lodash不是mo ...

  6. Android实战技巧之十二:Android Studio导入第三方类库、jar包和so库

    第三方类库源码 将一网友的XMPP代码从ADT转到AS时,发现其使用了第三方类库,源码放在了lib下,直接在AS中Import project,第三方类库并没有自动导入进来,看来需要自己动手了. 项目 ...

  7. Android Studio导入第三方类库的方法

     Android Studio导入第三方类库的方法 本人也刚刚开始尝试做android app的开发,听说android studio是Google支持的android 应用开发工具,所以想应该肯 ...

  8. Laravel 加载第三方类库的方法

    https://www.jb51.net/article/138530.htm 这篇文章主要介绍了Laravel 加载第三方类库的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编 ...

  9. Laravel 引入自定义类库或第三方类库

    https://www.cnblogs.com/mouseleo/p/9075187.html 强烈建议引入的类 都是含有命名空间的,这样使用起来就不会出现重名的情况.!!当然,没有命名空间也可以使用 ...

  10. Cocoapods 第三方类库管理工具

    参考:http://www.it165.net/pro/html/201410/24804.html Cocoapods意义体现在两个方面. l   在引入第三方库时它可以自动为我们完成各种各样的配置 ...

最新文章

  1. Listview获取选中行的值
  2. 2020年10月GitHub上最热门的开源项目
  3. Spring MVC-02循序渐进之解耦控制器和校验器
  4. 织梦php远程连接数据库,用PHP连接Oracle for NT 远程数据库
  5. C++ STL 容器之queue
  6. 前端学习(2501):动态绑定样式
  7. php中用户验证的方式,在php中进行用户身份验证的最佳方式是什么?
  8. 二隐层的神经网络实现MNIST数据集分类
  9. phpcms上传php,phpcms如何上传视频
  10. Flash和HTML5那点事:后者拿什么取代Flash?
  11. 单调栈与单调队列简单例题
  12. 快速获取废料_【优废回收】11月16日有色金属废料回收参考行情!
  13. osqa mysql_osqa安装出现的问题解决办法 | 学步园
  14. 基于STM32的智能小区安保管理系统设计
  15. RK3399 Android7.1 AP6212蓝牙可发文件,但收不到文件
  16. linux网卡驱动如何安装,linux下网卡驱动安装全过程
  17. tcpreplay的安装与使用
  18. 计算机网络基础总结(超全)
  19. java几个注解的作用及比较(@RestController、@Controller、@ResponseBody、@RequestBody等)
  20. badger mremap size mismatch数据库异常

热门文章

  1. shopify独立站用户行为分析工具推荐-趣迹
  2. cspm2——T2 HRZ学英语
  3. arcgis画矢量图
  4. Unity实现可调子屏幕(类小地图)效果
  5. 实现国产化转型,ZStack Cloud 助力中铁财务数字化转型!
  6. python+appium在使用swipe滑动时,报错The swipe did not complete successfully的解决办法
  7. 【记录】好用的字体识别工具(网站)
  8. 东北大学软件项目管理与过程改进复习提纲(2020)——第三章
  9. html是什么意思?
  10. 010 《你不理财,财不理你》读书笔记