1.下载、部署和配置
下载
方法1.github: https://github.com/kosinix/grafika/
方法2.官网: https://kosinix.github.io/grafika/
部署
方法1.composer: composer require kosinix/grafika:dev-master --prefer-dist
方法2.直接下载,手动添加的项目中。
配置
每个示例都需要引入这个文件
require_once ‘src/autoloader.php’;
2. 基本使用
2.1基本处理——缩略图生成
<?php
require_once './emotion/grafika/src/autoloader.php';
use Grafika\Grafika; // Import package
$editor = Grafika::createEditor();
$editor->open($image1 , './static/img/5.png');
$editor->resizeFit($image1 , 200 , 200); // resizeFit 等比缩放。resizeExact固定缩放
$editor->save($image1 , './static/img/10005.png');
缩略图效果对比:
像素缩小:516x547 => 188x200
我们最初设置的200x200的意思是最长边不超过200,然后等比缩放。保证图片不失帧图片的大小也有变化:74kb => 23kb
2.2其他缩放
我们前面讲了等比缩放和固定缩放,那么Grafika还支持那些功能呢?
- Resize Fill:
$editor->resizeFill($image1 , 200,200);
居中剪裁。就是把较短的变缩放到200px,然后将长边的大于200px的部分居中剪裁掉,图片不会变
形 - Resize Exact Width:
$editor->resizeExactWidth($image1 , 200)
;
等宽缩放,最终宽为200px,等比缩放,高度不管。 - Resize Exact Height:
等高缩放。最终高为200px,等比缩放,不考虑图片宽度。
2.3基本处理——其他功能
- 图像对比功能
- 图片合并功能
- 图片写文字
- 图片旋转
- 智能裁剪
- GIF缩略
- GIF动画移除
3. 特效处理
3.1特效处理——图像模糊
use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, './static/img/5.png' );
$filter = Grafika::createFilter('Blur', 50); // 模糊度为10,模糊度取值为0-100
$editor->apply( $image, $filter ); // 将滤镜应用到图片
$editor->save($image,'./static/img/10006.png');
图片像素没变,大小变小。图像变模糊。
3.2其他滤镜功能
1.Brightness $filter = Grafika::createFilter('Brightness', -50);
亮度调整:-100 至 -1,变暗 0 图片没有变化 1-100图片变亮
2.Colorize $filter = Grafika::createFilter('Colorize', -50,50,-50);
改变图片颜色:取值-100至-1,颜色减少;为0表示不变;取值1-100,表示色值增加
3.Contrast $filter = Grafika::createFilter('Contrast', 50);
改变对比度:-100至-1,对比度减少;0不变;1至100,对比度增加
4.Dither $filter = Grafika::createFilter('Dither', 'diffusion');
图像添加噪点,其参数取值只有两个diffusion:扩散;ordered:规整的
5.还有其他很多花里胡哨的功能。
4. 属性
4.1属性处理——格式化为二进制输出
该方法的作用是打开一张图片,然后格式化为二进制数据,直接输出到浏览器,而不是传统的src显
示图片。
示例代码:
use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, './static/img/5.png' );
header('Content-type: image/png'); // Tell the browser we're sending a png image
$image->blob('PNG');
4.2其他属性
1.getCore $result = $image->getCore();
获取当前处理库,是gd还是Imagick
2.getHeight $result = $image->getHeight();
获取图片高度,同样获取宽度用getWidth
3.getImageFile $result = $image->getImageFile();
获取图片当前文件名
4.getType $result = $image->getType();
获取图片类型
5. isAnimated $result = $image->isAnimated();
判断是不是动态图片
5. Grafika总结
在我们实际项目中,可以方便又快捷得生成缩咯图或者模糊图,这样可以使我们的网站的加载速度大
大提高。我们还可以使用其灵活的裁剪功能,满足我们网站显示固定像素图片的要求。