PHP中对图像的特殊处理——Grafika库的使用

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还支持那些功能呢?

  1. Resize Fill:$editor->resizeFill($image1 , 200,200);
    居中剪裁。就是把较短的变缩放到200px,然后将长边的大于200px的部分居中剪裁掉,图片不会变
  2. Resize Exact Width:$editor->resizeExactWidth($image1 , 200);
    等宽缩放,最终宽为200px,等比缩放,高度不管。
  3. Resize Exact Height:
    等高缩放。最终高为200px,等比缩放,不考虑图片宽度。

2.3基本处理——其他功能

  1. 图像对比功能
  2. 图片合并功能
  3. 图片写文字
  4. 图片旋转
  5. 智能裁剪
  6. GIF缩略
  7. 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总结

在我们实际项目中,可以方便又快捷得生成缩咯图或者模糊图,这样可以使我们的网站的加载速度大
大提高。我们还可以使用其灵活的裁剪功能,满足我们网站显示固定像素图片的要求。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值