php通过Grafika实现九宫格组图

Posted designers

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php通过Grafika实现九宫格组图相关的知识,希望对你有一定的参考价值。

什么是Grafika?

Grafika是一个php图像处理库,功能强大。

独特的功能

  • 智能裁剪
  • 动画GIF支持
  • 5种缩略图模式
  • 图像比较
  • 图像高级过滤功能
  • 图像混合
  • 规范化的API

安装

Grafika的官网

在项目根目录中,在命令行中输入:

composer require kosinix/grafika:dev-master --prefer-dist

创建编辑器

编辑器用于操纵图像。推荐的方法是使用Grafika :: createEditor()。它会自动选择最佳编辑器。它将检查Imagick是否可用。如果没有,它将回归使用GD。

use GrafikaGrafika; // 引入包

$editor = Grafika::createEditor(); // 创建编辑器

编辑器包含所有的图片处理方法。

下面是我生成合成图的实际代码:

public function images()
{
  try {
  $editor = Grafika::createEditor();
  $imageBack = Grafika::createBlankImage(750, 750);//创建一个750*750的空白图像

  $image1 = $image2 = $image3= $image4 = ‘‘;
  $editor->open($image1, ‘E:/goodsPic/1.jpeg‘);//打开1.jpeg并且存放到$image1
  $editor->resizeFill($image1, 375, 375);//居中剪裁。就是把较短的变缩放到200px,然后将长边的大于200px的部分居中剪裁掉,图片不会变形
  $editor->blend($imageBack, $image1, ‘normal‘, 1, ‘top-left‘);//将两个图像合成在一起,第一个图像作为基础,第二个图像在顶部。支持多种混合模式
  $editor->save($imageBack, ‘E:/goodsPic/all.jpg‘);//imageBack保存为all.jpg

  $editor->open($image2, ‘E:/goodsPic/2.jpg‘);
  $editor->resizeFill($image2, 375, 375);
  $editor->blend($imageBack, $image2, ‘normal‘, 1, ‘top-right‘);
  $editor->save($imageBack, ‘E:/goodsPic/all.jpg‘);

  $editor->open($image3, ‘E:/goodsPic/3.jpg‘);
  $editor->resizeFill($image3, 375, 375);
  $editor->blend($imageBack, $image3, ‘normal‘, 1, ‘bottom-left‘);
  $editor->save($imageBack, ‘E:/goodsPic/all.jpg‘);

  $editor->open($image4, ‘E:/goodsPic/4.jpg‘);
  $editor->resizeFill($image4, 375, 375);
  $editor->blend($imageBack, $image4, ‘normal‘, 1, ‘bottom-right‘);
  $editor->save($imageBack, ‘E:/goodsPic/all.jpg‘);
  } catch (Exception $e){
    echo $e->getMessage();
  }
  exit(‘run over‘);
}

最后生成一张合成图:

技术分享图片



以上是关于php通过Grafika实现九宫格组图的主要内容,如果未能解决你的问题,请参考以下文章

Android实现九宫格解锁的实例代码

Flutter 实现九宫格抽奖动画效果

Flutter 实现九宫格抽奖动画效果

Flutter 实现九宫格抽奖动画效果

IOS 自定义按钮(代码实现)+九宫格

IOS 自定义按钮(代码实现)+九宫格