Yii 使用intervention/image拓展实现图像处理功能

yipeiwu_com6年前PHP代码库

一:安装intervention/image拓展

composer require intervention/image

二:上传文件

\Intervention\Image\ImageManagerStatic::make($_FILES['file']['tmp_name'])->save('upload.jpg');//file为上传表单的name名
\Intervention\Image\ImageManagerStatic::make($_FILES['file']['tmp_name'])->resize(300, 200)->save('upload.jpg');//file为上传表单的name名,并将上传的图片压缩成300,200

同时实现单图上传和多图上传

if ($_FILES['file']) {
  $image = $_FILES['file']['tmp_name'];
  if (is_array($image)) {
    //多图上传
    foreach ($image as $key => $item) {
      \Intervention\Image\ImageManagerStatic::make($item)->save($key.'upload.jpg');
    }
  } else {
    //单图上传
    \Intervention\Image\ImageManagerStatic::make($image)->save('upload.jpg');
  }
}

三:添加水印

1:添加文字水印

添加文字水印主要使用到text方法

text方法参数说明

x(可选)

x定义第一个字符的基点。默认值:0

y(可选)

y定义第一个字符的基点。默认值:0

callback(可选)

关闭字体对象的回调,回调可配置:

(1)file:配置水印字体
(2)size:配置水印大小
(3)color:配置水印颜色
(4)align:配置水印水平对齐方式
(5)valign:配置是垂直对齐方式
(6)angle:配置水印旋转角度
例:

//水印
ImageManagerStatic::make('upload.jpg')->text('水印文字',20,30,function($font){
  //配置水印字体
  $font->file(\Yii::getAlias('@webroot') . '/simsun.ttc');
  //配置水印大小
  $font->size(30);
  //配置水印颜色
  $font->color('#fff');
  //配置水印水平居左( left, right and center)
  $font->align('left');
  //配置水印垂直居下(top, bottom and middle)
  $font->valign('bottom');
  //配置水印旋转角度
  $font->angle(45);
})->save('uploadWater.jpg');

2:添加图片水印

添加图片水印主要使用到insert方法

insert方法参数说明:

source:水印图片地址

position:设置插入图像的位置,参数可配置项为:

(1)top-left (default)
(2)top
(3)top-right
(4)left
(5)center
(6)right
(7)bottom-left
(8)bottom
(9)bottom-right

x:水平偏移量,默认0

y:垂直偏移量,默认0

例:

ImageManagerStatic::make('upload.jpg')->insert('water.jpg','bottom-left',10,10)->save('uploadWater.jpg');

这里是intervention/image拓展的一些基本操作,详细可以参考: http://image.intervention.io/

总结

以上所述是小编给大家介绍的Yii 使用intervention/image拓展实现图像处理功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

基于Windows下Apache PHP5.3.1安装教程

都是下载最新的推荐版本,原来并没想到发到坛子来,所以并没有截图,后来总结到记事本的时候发现还是有蛮多问题的,所以就共享出来,希望对大家 有所帮助。在做实验的时候,我也参考了坛子里其他的前...

php求斐波那契数的两种实现方式【递归与递推】

本文实例讲述了php求斐波那契数的两种实现方式。分享给大家供大家参考,具体如下: 斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄...

round robin权重轮循算法php实现代码

先上代码,采用php脚本语言 <?php /* * Copyright (C) FatHong */ /* 数据初始化,weight: 权重 */ $host...

php项目中类的自动加载实例讲解

主要函数:spl_autoload_register() — 注册给定的函数作为 __autoload() 的实现 将函数注册到SPL __autoload函数队列中。如果该队列中的函数...

总结一些PHP中好用但又容易忽略的小知识

本文主要给大家总结了PHP中一些好用的小知识,分享出来供大家参考学习,下面来看看详细的介绍: 1、PHP函数之判断函数是否存在 当我们创建了自定义函数,并且了解了可变函数的用法,为了确保...