一:安装intervention/image拓展
composer require intervention/image
二:上传文件
1
2
|
\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
|
同时实现单图上传和多图上传
1
2
3
4
5
6
7
8
9
10
11
12
|
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:配置水印旋转角度
例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//水印
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
例:
1
|
ImageManagerStatic::make( 'upload.jpg' )->insert( 'water.jpg' , 'bottom-left' ,10,10)->save( 'uploadWater.jpg' );
|
这里是intervention/image拓展的一些基本操作,详细可以参考: http://image.intervention.io/
总结
以上所述是小编给大家介绍的Yii 使用intervention/image拓展实现图像处理功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
原文链接:https://segmentfault.com/a/1190000019544737