图像旋转,部署( 二 )


5、Resize Exact Height 等高缩放 。最终高为200px , 等比缩放 , 不考虑图片宽度 。
图像对比功能5 1、图片相似度对比 我们首先准备一张基本图 , 用来和其他图片对比 。(segmentfault网页图片可能处理过 , 直接使用本文图片可能结果不一致)
1、我们第一次使用一张灰度图片来比较
use GrafikaGrafika;$editor = Grafika::createEditor();$result = $editor->compare('yanying.jpg' , 'yanying_grey.jpg');var_dump($result); // int 2 说明: grafika图片对比方法compare返回一个数字 , 其中如果数字越接近于0 , 那么表示图片越相似 。如果数字在0-10范围内 , 那么图片都可能相似 。但是如果数字大于10 , 那么 , 可能就完全不同 。
这里返回2 , 说明相似度还是非常高的 。
2、我们再用一张缩小的图片来测试 , 记住都是和第一张基本图比较 。
use GrafikaGrafika;$editor = Grafika::createEditor();$result = $editor->compare('yanying.jpg' , 'yanying-smaller.jpg');var_dump($result); // int 0 这里结果返回0 , 相似度非常高 。
3、我们再用一张剪裁下来的局部图片测试
use GrafikaGrafika;$editor = Grafika::createEditor();$result = $editor->compare('yanying.jpg' , 'yanying-half.jpg');var_dump($result); // int 20 结果超过10了 , 相似度不怎么高
4、我们再用一张完全不同的图片测试
use GrafikaGrafika;$editor = Grafika::createEditor();$result = $editor->compare('yanying.jpg' , 'yanying-h.jpg');var_dump($result); // int 39 结果39 , 越来越大 , 越来越不像
2、比较图片是否相同 grafika提供方法equal来检查两张图片是否完全相同 。这里的检查是一个像素一个像素的检测 , 所以时间可能会较长 。
当然grafika也会预检查 , 如果两张图片大小不相同 , 则直接返回false 。只有其他都相同后才会进行逐像素检查 。
我们这里对比之前创建的一张缩略图 , 因为大小不一致 , 所以直接返回false
use GrafikaGrafika;$editor = Grafika::createEditor();$result = $editor->equal('yanying.jpg' , 'yanying-smaller.jpg');var_dump($result); // boolean false 智能剪裁6 智能剪裁是自动识别图像中的重要部分 , 剪裁时候偏向于保留重点部分 。
不过grafika也提供了人为操控位置剪裁 , 我们先说这个 。
基本位置剪裁 基本位置剪裁包含9个位置
top-left
top-center
top-right
center-left
center
center-right
bottom-left
bottom-center
bottom-right
我们这里一起说了 , 这里我们使用900*600的图片 , 分成9块
use GrafikaGrafika;$editor = Grafika::createEditor();$src = https://ye.wsina.com/info/'yanying.jpg';$editor->open( $image, $src );$editor->crop( $image, 300, 200, 'top-left' );$editor->save( $image, 'result1.jpg' );$editor->free( $image );$editor->open( $image, $src );$editor->crop( $image, 300, 200, 'top-center' );$editor->save( $image, 'result2.jpg' );$editor->free( $image );$editor->open( $image, $src );$editor->crop( $image, 300, 200, 'top-right' );$editor->save( $image, 'result3.jpg' );$editor->free( $image );$editor->open( $image, $src );$editor->crop( $image, 300, 200, 'center-left' );$editor->save( $image, 'result4.jpg' );$editor->free( $image );$editor->open( $image, $src );$editor->crop( $image, 300, 200, 'center' );$editor->save( $image, 'result5.jpg' );$editor->free( $image );$editor->open( $image, $src );$editor->crop( $image, 300, 200, 'center-right' );$editor->save( $image, 'result6.jpg' );$editor->free( $image );$editor->open( $image, $src );$editor->crop( $image, 300, 200, 'bottom-left' );$editor->save( $image, 'result7.jpg' );$editor->free( $image );$editor->open( $image, $src );$editor->crop( $image, 300, 200, 'bottom-center' );$editor->save( $image, 'result8.jpg' );$editor->free( $image );$editor->open( $image, $src );$editor->crop( $image, 300, 200, 'bottom-right' );$editor->save( $image, 'result9.jpg' );$editor->free( $image ); 看下结果
智能剪裁 原图
我们使用智能剪裁将图片剪裁至200*200px
use GrafikaGrafika;$editor = Grafika::createEditor();$editor->open( $image, 'yanying-smaller.jpg' );$editor->crop( $image, 200, 200, 'smart' );$editor->save( $image, 'yanying-smart.jpg' ); 发现还是可以突出重点的
创建图像7 grafika允许你使用4种方式创建一个待处理的图像