1. 安装:
    2. https://blog.csdn.net/beyond__devil/article/details/62230610
    3. 需求:
    4. PHP >= 5.4
    5. Fileinfo 扩展
    6. GD库 >= 2.0
    7. Imagick 扩展 >=6.5.7
    8. composer安装:
    9. composer require intervention/image
    10. laravel配置:
    11. 1.编辑 config/app.php
    12. $providers 添加 'Intervention\Image\ImageServiceProvider::class'
    13. $aliases 添加 ''Image' => Intervention\Image\Facades\Image::class'
    14. 2.默认使用的是 'GD' 库,想修改的话,需要配置驱动,我们来生成配置文件:
    15. php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"
    16. 生成 config/image.php 配置文件
    17. 3.PHP涉及到的配置项:
    18. memory_limit - 最大内存限制
    19. upload_max_filesize - 如果上传图片时,可能修改
    20. -----
    21. 其实,可能还有好多
    22. max_execution_time - 最大执行时间
    23. ...
    24. 基本使用:
    25. 1.使用 Intervention\Image\ImageManager - 图片管理类
    26. use Intervention\Image\ImageManager;
    27. $manager = new ImageManager(array('driver' => 'imagick'));
    28. $manager->make('public/foo.jpg');
    29. 2.使用 ImageManager 的静态版本
    30. use Intervention\Image\ImageManagerStatic as Image;
    31. Image::configure(array('driver' => 'imagick'));      ------- api中未出现此方法
    32. Image::make('public/foo.jpg');
    33. HTTP响应:
    34. 1.将图像直接返回到用户浏览器的最简单的方法是输出response()方法。 它将根据当前图像自动发送HTTP头,并输出编码的图像数据。
    35. $img = Image::canvas(800, 600, '#ff0000');
    36. echo $img->response('jpg', 70);
    37. 2.手动发送HTTP响应
    38. $img = Image::canvas(800, 600, '#ff0000');
    39. header('Content-Type: image/png');
    40. echo $img->encode('png');
    41. 在laravel中,同上面的2种方法一样:
    42. 3.
    43. $img = Image::canvas(800, 600, '#ff0000');
    44. return $img->response();
    45. 4.
    46. $img = Image::canvas(800, 600, '#ff0000');
    47. $response = Response::make($img->encode('png'));
    48. $response->header('Content-Type', 'image/png');
    49. return $response;
    50. 图片上传:
    51. 1.直接从 $_FILES 中,获取 'tmp' 临时图片数据
    52. $img = Image::make($_FILES['image']['tmp_name']);       // Image::make() 支持这种方式
    53. $img->fit(300, 200);
    54. $img->save('public/bar.jpg');
    55. 2.在laravel中处理图片上传
    56. Image::make(Input::file('photo'));                      // Input::file() 来获取$_FILES
    57. 图片过滤器:
    58. 图片过滤器,给了我们非常有用的方式,将多个图像转换命令集合在一个专用类中。(可将多个图像处理步骤,封装成一个过滤器)。
    59. Intervention/image,提供了基本接口(Intervention\Image\Filters\FilterInterface),所有的过滤器都需要实现它。
    60. 调用过滤器:
    61. $img = Image::make('foo.jpg');
    62. $img->filter(new DemoFilter(5));
    63. 定义过滤器:
    64. src/Intervention/Image/Filters/DemoFilter.php
    65. <?php
    66. namespace Intervention\Image\Filters;
    67. class DemoFilter implements FilterInterface
    68. {
    69. /**
    70. * Default size of filter effects
    71. */
    72. const DEFAULT_SIZE = 10;
    73. /**
    74. * Size of filter effects
    75. *
    76. * @var integer
    77. */
    78. private $size;
    79. /**
    80. * Creates new instance of filter
    81. *
    82. * @param integer $size
    83. */
    84. public function __construct($size = null)
    85. {
    86. $this->size = is_numeric($size) ? intval($size) : self::DEFAULT_SIZE;
    87. }
    88. /**
    89. * Applies filter effects to given image
    90. *
    91. * @param  Intervention\Image\Image $image
    92. * @return Intervention\Image\Image
    93. */
    94. public function applyFilter(\Intervention\Image\Image $image)
    95. {
    96. $image->pixelate($this->size);
    97. $image->greyscale();
    98. return $image;
    99. }
    100. }
    101. ?>
    102. 图像缓存:
    103. 图像缓存包,扩展了缓存图像的能力。
    104. 缓存包使用laravel的 'Illuminate/Cache' 包。基于laravel的缓存配置,可以使用 '文件系统'、'数据库'、'Memcached'或'Redis' 来作为临时缓冲存储
    105. 原理很简单。一旦安装了缓存包,就可以调用静态缓存方法。每个对 Intervention/Image 类的方法调用,都会被缓存接口捕获和检查。如果这个特定的操作序列意境生成过,将直接从缓存中获取数据,而不是重新执行一遍资源密集型的GD操作
    106. 安装:
    107. composer require intervention/imagecache
    108. 使用方式:
    109. $img = Image::cache(function($image){
    110. $image->make('public/foo.jpg')->resize(300, 200)->greyscale();
    111. });
    112. 基于URL的图像操作:
    113. 在Laravel应用程序中,可以使用URL来动态操作图像。 URL图像的操作版本将存储在缓存中,并且将直接加载而无需资源密集型GD操作。
    114. 图像必须上传一次。当通过HTTP请求方式访问文件,所有操作(例如:调整大小、裁剪)将稍后处理,例如:
    115. http://yourhost.com/{route-name}/{template-name}/{file-name}
    116. 1.安装:
    117. composer require intervention/image
    118. composer require intervention/imagecache
    119. 2.生成配置文件
    120. php artisan vendor:publish
    121. 生成 config/imagecache.php
    122. 3.启用操作
    123. 默认情况下,基于URL的图像操作是关闭的。在imagecache.php配置文件中,来指定 'route' 配置项
    124. 'route' => 'imagecache'
    125. 配置好route后,可以通过artisan命令,列出所有已注册的路有,并检查新路有是否正确列出:
    126. php artisan route:list
    127. 4.定义资源目录
    128. 告诉PHP,在哪里搜索图片。我们可以定义自己喜欢的任意数量的目录。例如:定义应用程序的所有上传目录。应用程序将在目录中搜索在路有中提交的文件。
    129. 'paths' => array(
    130. 'storage/uploads/images',
    131. public_path('img'),
    132. ),
    133. 在这些目录中保存具有唯一文件名的图像文件是有意义的。否则,包将返回首先找到的图像。
    134. 注意:
    135. 出于安全原因,路由仅接受由以下字符组成的文件名:
    136. a-zA-Z0-9-_/.
    137. 5.模板
    138. 模板的定义,就是过滤器类的名称,可以在其中定义任意操作命令(之前介绍过过滤器)。系统自带3个基本模板:
    139. small - 120x90
    140. medium - 240x180
    141. large - 480x360
    142. 我们可以在配置文件中,自由配置可用的模板:
    143. 'templates' => array(
    144. 'small' => 'Intervention\Image\Templates\Small',
    145. 'medium' => 'Intervention\Image\Templates\Medium',
    146. 'large' => 'Intervention\Image\Templates\Large',
    147. ),
    148. 访问原始图片:
    149. original - 使用原始图像文件,发送HTTP响应
    150. download - 发送HTTP响应并强制浏览器下载原始图像文件,而不是显示它。
    151. 例如:
    152. http://yourhost.com/{route-name}/original/{file-name}
    153. 6.图像缓存的生命周期:
    154. 一旦第一次访问了URL,搜索图片,并根据模板,编辑图像,并存储到缓存中。 所以下次访问URL时,所有的GD操作都被绕过,文件将直接来自缓存
    155. 'lifetime' => 43200,     // 单位是 'minutes-分钟'
    156. 支持的格式:
    157. 图片格式:
    158. GD库:jpeg, png, gif
    159. Imagick库:jpeg, png, gif, tif, bmp, ico, psd
    160. 颜色格式:
    161. 整数
    162. $color = Image::make('public/foo.jpg')->pickColor(10, 10);   // pickColor()返回的是整数形式的RGB值
    163. $img->fill($color);
    164. 数组
    165. $img->fill(array(255, 0, 0));
    166. $img->fill(array(255, 0, 0, 0.5));
    167. 16进制
    168. $img->fill('#000000');
    169. RGB和RGBA字符串格式
    170. $img->fill('rgb(255, 0, 0)');
    171. $img->fill('rgb(255, 0, 0, 0.5)');
    172. 创建图像:
    173. 1.canvas($width, $height [, mixed $bgcolor]) - 创建一个空的画布
    174. 构造方法,使用给定的宽、高,创建一个新的空的图像实例。可以选择性的定义一个背景色。默认画布背景是透明(transparent)的。
    175. 示例:
    176. $img = Image::canvas(800, 600);
    177. $img = Image::canvas(32, 32, '#ff0000');
    178. 2.make($source) - 从给定的资料中读取图像
    179. 从资源中创建新的图像实例的通用工厂方法。该方法高度可变,可读取下面列出的所有输入类型:
    180. string - 文件系统的图片路径
    181. string - 图片的URL地址(allow_url_fopen必须启用)
    182. string - 二进制图片数据
    183. string - data-url编码的图片数据
    184. string - base64编码的图片数据
    185. resource - gd类型的PHP资源(当使用GD库)
    186. object - Imagick实例(当使用Imagick库)
    187. object - Intervention\Image\Image 实例
    188. object - SplFileInfo instance (To handle Laravel file uploads via Symfony\Component\HttpFoundation\File\UploadedFile) - laravel框架自带的图片上传实例
    189. 销毁图像:
    190. 1.destroy() - 销毁图像
    191. 在PHP脚本结束前,释放当前图像实例相关的内存。通常资源会在脚本结束后,自动释放。
    192. 当然,该方法调用后,图像实例不再可用。
    193. 示例:
    194. $img = Image::make('public/foo.jpg');
    195. $img->resize(320, 240);
    196. $img->save('public/small.jpg');
    197. $img->destroy();
    198. 图像输出:
    199. 1.response([string $format [, integer $quality]]) - 直接作为HTTP响应
    200. 以指定的格式和图像质量,来发送当前图像,作为HTTP响应
    201. $format - 可以是:jpg,png,gif,tif,bmp。默认是jpeg
    202. $quality - 从0-100.默认是90
    203. 2.save([string $path [, int $quality]]) - 保存图像到指定路径(未指定,则表示覆盖原图)
    204. 将图像对象的当前状态保存到文件系统中。可指定路径和图像质量。
    205. 保存到图像类型通过文件后缀来定义。例如:foo.jpg 图片将被保存为 'JPG' 格式。如果未指定可用后缀,首先尝试图像的MIME类型,如果失败,将被编码为 'JPEG'
    206. 此外,图像将始终以RGB颜色模式保存,而没有嵌入的颜色配置文件。
    207. $path - 指定图像数据写入的文件路径。如果图像是从一个存在的文件路径创建的,同时我们未指定 $path,将会尝试覆盖该路径。
    208. 示例:
    209. $img = Image::make('public/foo.jpg')->resize(300, 200);
    210. $img->save('public/bar.png', 60);
    211. $img->save('public/bar.jpg');
    212. 3.stream([mixed $format [, int $quality]]) - 图像流
    213. 以给定格式和给定图像质量,对当前图像进行编码,并基于图像数据,创建新的PSR-7流。
    214. 4.encode([$format [, $quality]]) - 图像进行编码
    215. 将当前图片,按给定的格式和图片质量进行编码
    216. $format - jpg、png、gif、tif、bmp、data-url(base64)。默认返回的编码后的数据。默认类型是 'jpeg'
    217. $quality - 返回从 0-100。0-最低,100最大。只对 'jpg' 编码格式有效,因为png压缩是无损的,不会影响图片质量。默认是90
    218. 示例:
    219. $jpg = (string) Image::make('public/foo.png')->encode('jpg', 75);
    220. $data = (string) Image::make('public/foo.png')->encode('data-url');
    221. 图像缓存相关
    222. 1.cache(Closure $callback [, int $lifetime [,bool $returnObj]]) - 图像缓存
    223. $callback - 从Closure回调,创建新的缓存图像实例。
    224. $lifetime - 为回调传递一个生命周期
    225. $returnObj - 获取一个Intervention图像实例作为返回值,还是直接接收图像流。
    226. cache()方法,需要安装额外的 'intervention/imagecache' 依赖包
    227. 示例:
    228. $img = Image::cache(function($image){
    229. $image->make('public/foo.jpg')->resize(300, 200)->greyscale();
    230. }, 10, true);
    231. 2.backup($name = 'default') - 图像状态备份
    232. 备份当前图片的状态。将图片的当前状态备份到 $name。之后,可以调用 reset($name = 'default') 来进行状态恢复。
    233. $name默认是'default'。我们可以传递不同的$name,来记录图片处理过程中的多个状态
    234. 示例:
    235. $img = Image::canvas(120, 90, '#000');
    236. $img->fill('#f00');
    237. $img->backup();
    238. $img->fill('#0f0');
    239. $img->reset();
    240. 3.reset($name = 'default') - 图像状态恢复
    241. backup()用于备份图像状态,reset()用于恢复到之前的某个备份
    242. 原生图像处理驱动调用:
    243. 1.getCore() - GD库|Imagick库 对象调用
    244. 以特定驱动的核心格式,返回当前图像。如果使用的是 'GD' 库,则返回 GD 资源类型;如果使用的是 'Imagick',则返回一个 Imagick 对象。
    245. 示例:
    246. $img = Image::make('public/foo.jpg');
    247. $imagick = $img->getCore();          // 返回原始的 'imagick' 对象
    248. $imagick->embossImage(0, 1);     // 就可以调用 'imagick' 的方法了
    249. 调整图像尺寸:
    250. 1.resize($width, $height [,Closure $callback]) - 调整图像尺寸
    251. 使用给定的宽、高,来调整当前图像。传递一个可选的Closure回调来约束resize命令。
    252. 回调函数,定义了resize命令的约束。可约束图像的 '宽高比(aspect-ratio)' 和 '不希望的大小(a unwanted upsizing)'
    253. aspectRatio()
    254. 约束当前图像的宽高比。作为比例调整大小的快捷方式,可以使用 widen() 和 heighten()
    255. upsize()
    256. 保持图像大小
    257. 示例:
    258. $img = Image::make('public/foo.jpg');
    259. $img->resize(300, 200);
    260. $img->resize(300, null);
    261. $img->resize(null, 200);
    262. $img->resize(300, null, function($constraint){       // 调整图像的宽到300,并约束宽高比(高自动)
    263. $constraint->aspectRatio();
    264. });
    265. $img->resize(null, 200, function($constraint){       // 调整图像的高到200,并约束宽高比(宽自动)
    266. $constraint->aspectRatio();
    267. });
    268. $img->resize(null, 400, function($constraint){       // 阻止可能的尺寸变化(保持图像大小)
    269. $constraint->aspectRatio();
    270. $constraint->upsize();
    271. });
    272. 2.widen($width [, Closure $callback]) - 调整图像宽(保持宽高比)
    273. 调整图像的宽到给定的宽度,保持宽高比。传递一个可选的回调函数,来应用额外的约束,例如:阻止可能的尺寸变化
    274. upsize()
    275. 保持图像大小
    276. 3.heighten($height [, Closure $callback]) - 调整图像高(保持宽高比)
    277. 调整图像的高到给定的高度,保持宽高比。传递一个可选的回调函数,来应用额外的约束,例如:阻止可能的尺寸变化
    278. upsize()
    279. 保持图像大小
    280. 4.crop($width, $height [, $x, $y]) - 裁剪图像
    281. 使用给定的宽、高,裁剪当前图像的一个矩形区域。默认从图像的0.0开始,可传递一个坐标,定位裁剪的起始点。
    282. 示例:
    283. $img = Image::make('public/foo.jpg');
    284. $img->crop(100, 100, 20, 20);
    285. 5.fit($width [[$height] [, Closure $callback [, $position]]]) - 智能裁剪和调整
    286. 以一个智能的方式,结合裁剪和调整来格式化图片。该方法将会自动找到给定的宽、高的最佳宽高比,裁剪并调整到给定尺寸。
    287. $callback - 回调函数,来约束可能的尺寸变化
    288. upsize()
    289. 保持图像大小
    290. $position - 自定义裁剪的位置。默认是 '中心'
    291. top-left
    292. top
    293. top-right
    294. left
    295. center(默认)
    296. right
    297. bottom-left
    298. bottom
    299. bottom-right
    300. 6.resizeCanvas($width, $height [, $anchor [, bool $relative [, $bgcolor]]])
    301. 调整当前图像的边界到给定的宽和高。
    302. $anchor - 从图像的哪点开始调整
    303. top-left
    304. top
    305. top-right
    306. left
    307. center(默认)
    308. right
    309. bottom-left
    310. bottom
    311. bottom-right
    312. $relative - 将模式设置为相对,用以在真实的图片尺寸上,添加或者减去给定的宽、高。
    313. $bgcolor - 画布背景(默认 '#000000')
    314. 7.trim([$base [, array $away [, $tolerance [, $feather]]]])
    315. 以给定颜色修剪图像空间。
    316. $base - 定义从什么位置来选取修剪颜色的点。例如:设置为  'bottom-right',图像上的所有颜色将被修剪掉,等同于图片左下角的颜色。可选的值有:
    317. top-left(默认)
    318. bottom-right
    319. tranparent
    320. $away - 应该被修剪掉的边框。你可以添加多个边框(array),可选的值有:
    321. top
    322. bottom
    323. left
    324. right
    325. $tolerance - 定义一个偏差度,修剪相似颜色值。范围0-100。默认是0
    326. $feather - 羽化效果
    327. 有时,在修剪时在对象周围留下未触摸的“边框”可能是有用的。 特别是修剪非实体背景时,您可以展开(正值)或收缩(负值)修剪对象周围的空间一定量的像素。
    328. 示例:
    329. Image::make('public/foo.jpg')->trim();       // 默认,所有边框使用 'top-left' 颜色
    330. Image::make('public/foo.jpg')->trim('bottom-right');     // 所有边框使用 'bottom-right' 颜色
    331. Image::make('public/foo.jpg')->trim('transparent', array('top', 'bottom'));      // 上、下边框透明
    332. Image::make('public/foo.jpg')->trim('top-left', 'left');     // 只有左边框,使用 'top-left' 颜色
    333. Image::make('public/foo.jpg')->trim('top-left', null, 40);       // 移除图像所有边框+40偏差度
    334. Image::make('public/foo.jpg')->trim('top-left', null, 25, 50);       // 移除图像所有边框+25偏差度+50px的边框羽化效果
    335. 调整图像:
    336. 1.gamma($correction) - 伽马矫正
    337. 对当前图像执行伽马矫正操作
    338. $correction - 伽马补偿值(gamma compensation value)
    339. 示例:
    340. $img = Image::make('public/foo.jpg');
    341. $img->gamma(1.6);
    342. 2.brightness($level) - 亮度
    343. 改变当前图像的亮度。$level可选范围为:-100 - 100。0-表示不改变,-100最小,+100最大。
    344. 示例:
    345. $img = Image::make('public/foo.jpg');
    346. $img->brightness(35);
    347. 3.constrast($level) - 对比度
    348. 改变图像的对比度。$level可选范围为:-100 - 100。0-表示不改变,-100最小,+100最大。
    349. 示例:
    350. $img = Image::make('public/foo.jpg');
    351. $img->constrast(35);
    352. 4.colorize($red, $green, $blue) - 改变RGB色道
    353. 使用给定的红、绿、蓝色道,改变当前图像的RGB颜色。色道值是规范化的,范围从 -100 - 100。0-表示不改变,-100表示移除图像上的所有特定颜色,+100表示最大颜色
    354. 示例:
    355. $img = Image::make('public/foo.jpg');
    356. $img->colorize(-100, 0, 100);    // 添加蓝,移除红
    357. $img->colorize(0, 30, 0);        // 给图片添加部分蓝色调
    358. 5.greyscale() - 灰度
    359. 将图像转换为灰度版本
    360. 示例:
    361. $img = Image::make('public/foo.jpg');
    362. $image = $img->greyscale();
    363. 6.flip($mode) - 图像镜像
    364. 给当前图像,制作镜像。$mode可以指定为:h-水平镜像和v-垂直镜像。默认是h
    365. 示例:
    366. $img = Image::make('public/foo.jpg');
    367. $img->flip('v');
    368. 7.invert() - 反转图像颜色
    369. 反转当前图像的所有颜色
    370. 示例:
    371. $img = Image::make('public/foo.jpg')->invert();
    372. 8.opacity($transparency) - 设置图像的透明度
    373. 设置当前图像的不透明度的百分比。从 100%-0%,100%-不透明|0%-全透明
    374. 示例:
    375. Image::make('public/foo.jpg')->opacity(50);
    376. Image::make('public/foo.jpg')->opacity(0);
    377. 9.orientate() - 旋转图像(记得摩点图像处理,使用了它。Imagick)
    378. 此方法读取EXIF图像配置项 '方向',并对图像执行旋转,以正确显示图像。必须从文件路径实例化图像,才能正确读取EXIF数据
    379. 注意:
    380. 使用该方法,要求PHP编译时,必须指定 '--enable-exif'。windows用户,还必须启用 'mbstring' 扩展
    381. 示例:
    382. $img = Image::make('public/foo.jpg')->orientate();
    383. 10.rotate(float $angle [, string $bgcolor]) - 图像旋转
    384. 将当前图像,逆时针旋转给定角度。可定义旋转后,未覆盖区域的背景颜色!
    385. $angle - 旋转角度
    386. $bgcolor - 旋转后,可能出现未覆盖区域,我们可设置背景色
    387. 11.mask($source [, bool $mask_with_alpha = false])
    388. 将给定的图像资源应用为当前图像的alpha蒙板,以改变当前透明度。蒙板将调整为当前图像大小。默认情况下,蒙板的灰度版本会转换为alpha值,但可通过设置 $mask_with_alpha 以应用世纪的alpha通道。将保持当前图像的透明度。
    389. $source:
    390. string - 文件系统的图片路径
    391. string - 图片的URL地址(allow_url_fopen必须启用)
    392. string - 二进制图片数据
    393. string - data-url编码的图片数据
    394. string - base64编码的图片数据
    395. resource - gd类型的PHP资源(当使用GD库)
    396. object - Imagick实例(当使用Imagick库)
    397. object - Intervention\Image\Image 实例
    398. object - SplFileInfo instance (To handle Laravel file uploads via Symfony\Component\HttpFoundation\File\UploadedFile) - laravel框架自带的图片上传实例
    399. $mask_with_alpha - 设置为true,可将实际的alpha通道作为蒙板,应用于当前图像,替代颜色值。默认是 false
    400. 应用效果:
    401. 1.filter(Intervention\Image\Filters\FilterInterface $filter) - 使用滤镜
    402. 给当前图像,应用自定义的滤镜效果
    403. 2.blur($amount = 1) - 高斯模糊
    404. 在当前图片上,应用高斯模糊滤镜。$amount可选范围为 0-100。(GD库处理,高强度的高斯模糊会非常占用性能,小心使用)
    405. 示例:
    406. $img = Image::make('public/foo.jpg');
    407. $img->blur();        // 轻微的高斯模糊
    408. $img->blur(15);      // 高强度的高斯模糊
    409. 3.sharpen($amount = 10) - 锐化效果
    410. 锐化当前图像。$amount可选范围为 0-100。
    411. 示例:
    412. $img = Image::make('public/foo.jpg');
    413. $img->sharpen(15);
    414. 4.pixelate($size) - 像素化效果
    415. 将像素化效果应用于当前图像(指定像素化效果的尺寸)
    416. 5.limitColors($count [, $matte])
    417. 将当前图片的现有颜色,转换为具有给定最大颜色数的颜色表。该函数保留尽可能多的alpha通道信息,并将透明像素与可选的遮罩颜色混合。
    418. $count - 应在调色板中保留的最大颜色数。设置为null,转为真彩色(truecolor)
    419. $matte - 用于混合透明像素的颜色。默认值:无遮罩颜色
    420. 示例:
    421. $img = Image::make('public/foo.png');
    422. $img->limitColors(255, '#f90');
    423. 6.interlace($interlace = true) - 图像隔行扫描
    424. 传递一个boolean类型参数,切换隔行扫描模式,来确定是否使用隔行扫描或标准模式,对图像进行编码。如果jpeg图像使用隔行扫描模式,图像将被处理为渐进式jpeg。
    425. 设置为true-隔行扫描模式|false-标准模式。默认是true
    426. 示例:
    427. $img = Image::make('public/foo.png');
    428. $img->interlace();           // 开启隔行扫描
    429. $img->save();
    430. $img = Image::make('public/interlaced.gif');
    431. $img->interlace(false);      // 关闭隔行扫描
    432. $img->save();
    433. 画图:
    434. 1.text($text [, $x [, $y [, Closure $callback]]]) - 文字
    435. 在指定的位置,写入文本。在回调函数中,可定义更多细节,例如:字体大小,字体文件,对其方式等
    436. $callback - 回调函数
    437. file($filepath) - 字体文件。设置True Type Font文件的路径,或者GD库内部字体之一的1到5之间的整数值。 默认值:1
    438. size($size) - 字体大小。字体大小仅在设置字体文件时可用,否则将被忽略。 默认值:12
    439. color($color) - 字体颜色
    440. align($align) - 水平对齐方式:left,right,center。默认left
    441. valign($valign) - 垂直对齐方式:top,bottom,middle。默认bottom
    442. angle($angle) - 文本旋转角度。文本将围绕垂直和水平对齐点逆时针旋转。 旋转仅在设置字体文件时可用,否则将被忽略
    443. 2.pixel($color, $x, $y) - 点
    444. 在给定的坐标上,以给定的颜色画单个像素点
    445. 3.line($x1, $y1, $x2, $y2 [Closure $callback]) - 线
    446. 在当前图像上,指定2点画线。可以在回调函数中,定义线的颜色和宽度
    447. $callback
    448. color($color) - 指定线的颜色。默认:#000000
    449. width($width) - 指定线的宽度。默认:1px。          // GD库无效!!
    450. 4.rectangle($x1, $y1, $x2, $y2 [Closure $callback]) - 矩形
    451. 指定2点坐标,分别代表左上角和右下角,来画一个矩形。
    452. 5.polygon(array $points [, Closure $callback]) - 多边形
    453. 使用给定的点数据,来画一个多边形。可以在回调函数中,定义多变形的外观
    454. $callback 可使用下面的方法,来定义圆的外观:
    455. background($color) - 定义圆的背景
    456. border($width, $color) - 定义圆的边框
    457. 示例:
    458. $img = Image::canvas(800, 600, '#ddd');
    459. $points = array(
    460. 40, 50,
    461. 30, 40,
    462. 20, 30,
    463. 10, 20,
    464. 5, 10,
    465. );
    466. $img->polygon($points, function($draw){
    467. $draw->background('#ff0');
    468. $draw->border(1, '#f0f');
    469. })
    470. 6.circle($diameter, $x, $y [,Closure $callback]) - 圆
    471. 在给定的x、y坐标点上,使用给定的直径画一个圆。
    472. 可以通过回调函数,来定义圆的外观。
    473. $callback 可使用下面的方法,来定义圆的外观:
    474. background($color) - 定义圆的背景
    475. border($width, $color) - 定义圆的边框
    476. 示例:
    477. $img = Image::canvas(300, 200, '#ddd');
    478. $img->circle(100, 50, 50, function($draw){
    479. $draw->background('#ff0');
    480. $draw->border(1, '#f00');
    481. })
    482. 7.ellipse($width = 10, $height = 10, $x, $y [Closure $callback]) - 椭圆
    483. 在给定的x、y坐标点,绘制彩色椭圆。可以定义宽度和高度,以及通过可选的闭包回调来设置椭圆的外观
    484. $callback 可使用下面的方法,来定义圆的外观:
    485. background($color) - 定义圆的背景
    486. border($width, $color) - 定义圆的边框
    487. 图像的其它处理方法:
    488. 1.fill($filling [, $x, $y]) - 图像填充
    489. 使用给定颜色或另一张图片来填充当前图像。传递可选的x、y坐标,表示开始填充的位置。
    490. 如果指定了x、y坐标,原始图像上该坐标的颜色,将执行泛红填充(flood fill)。如果未指定坐标,不管下面是什么,填充整个图像
    491. $filling - 填充颜色或图像模式。图像资源格式如下:
    492. string - 文件系统的图片路径
    493. string - 图片的URL地址(allow_url_fopen必须启用)
    494. string - 二进制图片数据
    495. string - data-url编码的图片数据
    496. string - base64编码的图片数据
    497. resource - gd类型的PHP资源(当使用GD库)
    498. object - Imagick实例(当使用Imagick库)
    499. object - Intervention\Image\Image 实例
    500. object - SplFileInfo instance (To handle Laravel file uploads via Symfony\Component\HttpFoundation\File\UploadedFile) - laravel框架自带的图片上传实例
    501. 示例:
    502. $img = Image::canvas(800, 600);
    503. $img->fill('#ccc');
    504. $img->fill('public/foo.jpg');
    505. $img->fill('#f0f', 0, 0);
    506. 2.insert($source [, $position [, $x, $y]]) - 插入图片
    507. 将一个给定的图片资源插入到当前图像中。
    508. $source - 另一个图片资源
    509. $position - 位置(相对于当前图像)
    510. top-left(默认)
    511. top
    512. top-right
    513. left
    514. center
    515. right
    516. bottom-left
    517. bottom
    518. bottom-right
    519. $x,$y - 偏移坐标(默认:0.0)
    520. 在 $position 指定的位置上,再进行相对偏移
    521. 此方法可用于,将另一张图像作为水印,因为保持了透明度。
    522. 示例:
    523. $img = Image::make('public/foo.jpg');
    524. $img->insert('public/bar.png');                                  // 插入另一个图片
    525. $watermark = Image::make('public/watermark.png');               // 创建一个新的图片实例
    526. $img->insert($watermark, 'center');                              // 插入图片
    527. $img->insert('public/watermark.png', 'bottom-right', 10, 10);
    528. 3.pickColor($x, $y [string $format]) - 选取给定坐标颜色
    529. 在当前图像上的指定坐标,获取颜色,并返回给定的颜色格式
    530. $format - 颜色格式,可以是:
    531. array - array(255, 255, 255, 1)
    532. rgb - rgb(255, 255, 255)
    533. rgba - rgba(255, 255, 255, 0.5)
    534. hex - #cccccc
    535. int - 16776956
    536. 默认情况下,该方法将像素的RGB值作为数组返回。使用整数格式,将颜色直接传递给任意GD库函数
    537. 检索信息:
    538. 1.width()
    539. 获取当前图片的宽度(单位:px)
    540. 示例:
    541. $width = Image::make('public/foo.jpg')->width();
    542. 2.height()
    543. 获取当前图片的高度(单位:px)
    544. 示例:
    545. $height = Image::make('public/foo.jpg')->height();
    546. 3.mime()
    547. 如果已经图像已经定义了MIME类型,从当前图像实例中读取MIME类型。
    548. 4.exif([string $key])
    549. 从当前图像读取 'Exif' 元数据。必须从文件路径是实例化图像对象,才能正确读取EXIF数据
    550. imagick从2.3.9开始支持exif。PHP编译时,必须包含 '--enable-exif' 才能使用这个方法。windows用户,还必须开启 'mbstring' 扩展(PHP手册有该函数库)
    551. $key - 检索的exif哪个下标
    552. 5.iptc([string $key])
    553. 从当前图像中读取 'IPTC' 元数据
    554. 默认获取所有元数据,可以传递下标,来获取指定的元数据。没有发现元数据,返回 'NULL'
    555. 示例:
    556. $data = Image::make('public/foo.jpg')->iptc();                       // 获取所有数据
    557. $copyright = Image::make('public/foo.jpg')->iptc('Copyright');       // 获取 'Copyright'
    558. 6.filezise()
    559. 如果实例是从一个真实文件初始化的,获取当前图像实例的文件尺寸
    560. 返回图像的尺寸大小,单位是 'bytes - 字节',如果不是从一个文件创建的图像实例,则返回false
    561. 示例:
    562. $img = Image::make('public/foo.jpg');
    563. $size = $img->filesize();

laravel 的 intervention-image 图像处理笔记的更多相关文章

  1. laravel安装intervention/image图像处理扩展 报错 intervention/image 2.3.7 requires ext-fileinfo

    在安装intervention/image图像处理扩展 报错fileinfo is missing 报错信息如下: \blog>composer require intervention/ima ...

  2. laravel 的 intervention-image 图像处理笔记(备用)

    原文地址: http://blog.csdn.net/beyond__devil/article/details/62230610

  3. 数字图像处理笔记与体会(一)——matlab编程基础

    最近开始学习数字图像处理,使用matlab实现,下面我就来记录笔记和体会,一方面是给大家提供参考,另一方面是防止我忘记了. 复习一下: 1.数字图像是用一个数字矩阵来表示的,数字阵列中的每个数字,表示 ...

  4. 图像处理笔记(二十一):halcon在图像处理中的运用

    概要: 分水岭算法做图像分割 二维码识别 稍后将其他几篇笔记全都补充上概要方便查询. 分水岭算法做图像分割 使用距离变换结合分水岭算法实现图像分割,可以用来分割仅通过阈值分割还是有边缘连接在一起的情况 ...

  5. 学习 Laravel - Web 开发实战入门笔记(1)

    本笔记根据 LearnKu 教程边学边记而成.该教程以搭建出一个类似微博的Web 应用为最终成果,在过程中学习 Laravel 的相关知识. 准备开发环境 原教程使用官方推荐的 Homestead 开 ...

  6. C#图像处理笔记

    1.灰度拉伸 灰度拉伸又叫对比度拉伸,它是最基本的一种灰度变换,使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度级的动态范围.

  7. 图像处理笔记(1): bmp文件结构处理与显示

    1.1图和调色板的概念 如今Windows(3.x以及95,98,NT)系列已经成为绝大多数用户使用的操作系统,它比DOS成功的一个重要因素是它可视化的漂亮界面.那么Windows是如何显示图象的呢? ...

  8. QT 数字图像处理 笔记一

    1.被有符号整数和无符号整数十足的坑了一上午.我在实现图像旋转的时候先把坐标轴中心平移到图像中心:painter.translate(up_x+temp_w,up_y+temp_h);注意这里面各个数 ...

  9. 图像处理笔记(二十):LAWS纹理滤波应用于缺陷检测

    LAWS纹理滤波 texture_laws(Image, 原图像 ImageTexture, 输出值,滤波后图像 FilterType, 过滤器类型 Shift, 灰度值转换,滤波后的灰度值可能会比较 ...

随机推荐

  1. MySQL性能管理及架构设计

    第1章 实例和故事 1-1 什么决定了电商双11大促的成败 老板可能会说:"是我们的英明决策和运筹帷幄". 运营和产品可能会说:"是由于我们的活动策划和产品设计" ...

  2. servet概述

    1定义 Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层. 使用 Servl ...

  3. Azure PowerShell (16) 并行开关机Azure ARM VM

    <Windows Azure Platform 系列文章目录> 并行开机脚本: https://github.com/leizhang1984/AzureChinaPowerShell/b ...

  4. 跟着未名学Office - 高效笔记OneNote

    了解OneNote 2016年12月22日    19:57 OneNote Summary 理解OneNote中的笔记本.分区.页的概念 编写人:未名 感谢秦大: http://www.zloffi ...

  5. linux上mongodb的安装与卸载

    安装 1.下载安装包 wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz 下载完成后解压缩压缩包 tar zxf mon ...

  6. hadoop-n.x.y.tar.gz、hadoop-n.x.y.tar.gz.asc 、hadoop-n.x.y.tar.gz.md5 、hadoop-n.x.y.tar.gz.mds分别是什么?

    不多说,直接上干货! 我这里,以hadoop-2.6.0为例. hadoop-n.x.y.tar.gz.mds,此mds文件是为了检验在下载和移动文件过程中文件的完整性. 通过验证文件的md5值去检验 ...

  7. ASP.NET重写Render 加载CSS样式文件和JS文件(切换CSS换皮肤)

    网页换皮肤的方式有很多种,最简单的通常就是切换页面CSS,而CSS通常写在外部CSS文件里.那么切换CSS其实就是更换html里的link href路径.我在网上搜索了下. 一般有两种方式: 1.页面 ...

  8. 廖雪峰Java4反射与泛型-3范型-6super通配符

    1.super通配符 1.1super通配符第一种用法 泛型的继承关系 Pair<Integer>不是Pair<Number>的子类,如 static void set(Pai ...

  9. ngIf和ngFor共用

    Angular v2不支持同一元素上使用多个结构指令. 一种解决方法,使用<ng-container>,允许为每个结构指令使用单独元素的元素,但不会将其标记为DOM. <ng-con ...

  10. mvc5总结(1)

    1.Global.asax 全局的启动项,初始化相关配置 2.路由,按照默认规定请求就行,没必要扩展太多 3.区域路由,当我们想命名相同的controller和action时,结合命名空间使用 pub ...