[kosinix/grafika]一个PHP的高级图像处理库

Grafika 是一个用于 PHP 的高级图像处理和图形库。 但是PHP的图形处理库多着呢,为什么又要做一个图形库呢?为什么要重复造轮子呢?

独特的功能

Grafika有一些其他库没有去做过得特性:

  • 智能裁剪-Grafika能够在裁剪时保存图片最终要的区域
  • 支持GIF-无论使用GD还是Imagick都能够使用相同的接口处理GIF
  • 内置五种调整大小的模式-比如按照高度裁剪/缩放等
  • 图像比较-判断两张图片的相似程度或者是否是同一张图片
  • 图像混合-类似PS中的图层混合模式:正常/叠加等
  • 通用的接口-无需担心Imagick和GD的差异

内置的滤镜

内置了几个常用的滤镜:

  • Blur-模糊
  • Brightness-亮度
  • Colorize-鲜艳
  • Contrast-对比度
  • Gamma-伽马
  • Invert-镜像翻转
  • Pixelate-像素化
  • Sharpen-锐化

简单的代码

相比原本的GD操作,使用Grafik的代码跟简单更少,比如我们使用GD来将图像缩放为200*200:

$gd = imagecreatefromjpeg( 'path/to/jpeg/image.jpg' ); // 加载图片

$newImage = imagecreatetruecolor(200, 200); // 创建新画布

// 缩放大小 to 200x200
imagecopyresampled(
    $newImage,
    $gd,
    0,
    0,
    0,
    0,
    200,
    200,
    imagesx($gd),
    imagesy($gd)
);

imagedestroy($gd); // 销毁资源

imagejpeg( $newImage, 'path/to/edited.jpg', 90 ); // 保存图片

imagedestroy($newImage); // 销毁资源

如果是用Grafika,代码会更少:

use Grafika\Grafika;

$editor = Grafika::createEditor();

$editor->open( $image, "path/to/jpeg/image.jpg" );
$editor->resizeExact( $image, 200, 200 );
$editor->save( $image, "path/to/edited.jpg", null, 90 );

也可以像JQuery那样进行链式调用:

use Grafika\Grafika;

Grafika::createEditor()
        ->open( $image, "path/to/jpeg/image.jpg" )
        ->resizeExact( $image, 200, 200 )
        ->save( $image, "path/to/edited.jpg", null, 90 );

智能裁剪

Grafika可以智能判断出图片最重要的部分进行裁剪,使用的代码非常简单:

$editor->open( $image, $input );
$editor->crop( $image, 200, 200, 'smart' );
$editor->save( $image, 'output.jpg' );

比如这样几个例子:

类型图片结果
脸部

塔楼

方块

草莓

动画

更多的标准接口

Grafika还有齐全的图片操作接口,包括裁剪/绘画/透明度等.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值