图像旋转,部署( 三 )


1、直接打开图像 创建editor + open方法
use GrafikaGrafika;$editor = Grafika::createEditor();$editor->open( $image, 'path/to/image.jpg'); 2、使用静态方法打开图片 使用直接打开、创建图片
use GrafikaGrafika;$image = Grafika::createImage('path/to/image.jpg');// 这里省略了$editor = Grafika::createEditor(); 3、创建一个空白的画布 新建一个画布作为新图像
use GrafikaGrafika;$image = Grafika::createBlankImage(100,100); 4、从已有图片拷贝一个 拷贝一个图像作为图像处理
$copy = clone $image; 这种方法你要保证之前有一张图片
这几种方法之后的操作大同小异 , 我们只选择第一种常规方法作为讲解示例
图片写文字8 在图片上面写文字的参数比较多 , 不过如果正常使用 , 只需要给前两个必填的即可 , 后面的参数都是可选的 。
我们逐一的来看各个参数
image:所需要写文字的图片
text:需要写的文字
size:(选填)字体大小 , 默认为12px
x:(选填)文字的最左边距离图片最左边的距离 , 默认为0
y:(选填)文字的基线到图片的最上边的距离 , 默认是12px , 也就是文字的高度 。(基线你就当做文字最下面好了)
color:(选填)字体颜色 , Color对象 , 需要new Color一下 , 默认为黑色 。
font:(选填)字体的完整路径 , 默认Sans font.
angle:(选填)文字旋转角度 , 取值范围为0-359 , 默认为0 , 也就是不旋转
我们随便找个文字试试
use GrafikaGrafika;use GrafikaColor;$editor = Grafika::createEditor();$editor->open($image , 'yanying-smaller.jpg');$editor->text($image ,'yanying',30,200,100,new Color("#000000"),'',45);$editor->save($image,'333/yanying-text.jpg'); 看下效果 。这里说明下 , 如果文字为中文 , 需要找一个支持中文的字体 。默认字体不支持中文 , 所以你写中文 , 就是都是小方框 。
严颖 , PHP研发工程师
2016-11-07日晚
博客:segmentfault主页


安装9 下载 1、直接下载:
Grafika的官网、Github地址
2、composer:
composer require kosinix/grafika:dev-master --prefer-dist 环境需求PHP >= 5.3 , 当然官方推荐php7
GD库 >= 2.0版本
Imagick最好(不强求)>=3.3.0  ,  ImageMagick >= 6.5.3
优点:10缩略图的速度非常快 , 质量非常高
支持智能剪裁
很好的支持GIF图片
5种缩略图模式
图像对比功能
图像高级过滤功能
图像混合
其他图像处理库支持的API基本都支持
GIF缩略图11 压缩GIF , 不丢失动画 grafika可以直接压缩GIF图片 , 并且不丢失动画功能 。
use GrafikaGrafika;$editor = Grafika::createEditor();$editor->open( $image, 'sample.gif' );$editor->resizeFit( $image, 250, 128 );$editor->save( $image, 'output.gif' ); 我们这里将原图压缩到原来的一半 , 发现动画并没有丢失
移除GIF动画效果 当然 , 如果有需要 , 我们也可以直接移除GIF的动画效果
use GrafikaGrafika;$editor = Grafika::createEditor();$editor->open( $image, 'sample.gif' );$editor->flatten( $image );$editor->save( $image, 'output-no-animation.gif' );
图片合并12 图片合并需要2张图片 , 将其中一张作为基本图 , 准备的第二章图片就是放置在基础图片之上 。
我们首先来看代码
use GrafikaGrafika;$editor = Grafika::createEditor();$editor->open($image1 , 'yanying-h.jpg');$editor->open($image2 , 'yanying-smaller.jpg');$editor->blend ( $image1, $image2 , 'normal', 0.9, 'center');$editor->save($image1,'333/yanying-blend.jpg'); 解释一下
首先打开两张图片 , 其中$image1为基础图片 , 也就是放在下面的 。重点在blend这个方法 。
其中
第一个参数为基础图片
第二个参数为放置在基础图片之上的图片normal, multiply, overlay or screen. , 这里的类型意思就是图片叠加的模式 , 下面会给出实例看每种的不同 。
第三个参数为透明度 , 这个不说太多 , 容易想到 。
第四个为位置 , 有10个选择 , 其中 , 前面9种为用户自定义拜访位置 , 而最后一个是智能拜访 , 由grafika来判断摆放在哪里好 。top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right and smart