thinkphp5 图片处理及水印处理

使用Composer安装ThinkPHP5的图像处理类库:

composer require topthink/think-image

图像处理类库好像是根目录下的vendor文件夹,我本地就有,没用下载。

引入图像处理类

use think\Image;

模板文件

<form action="{:url('upload_img')}" enctype="multipart/form-data" method="post">
			选择图片:<input type="file" name="image"><br>
			处理类型:<select name="type">
				<option value="1">裁剪</option>
				<option value="2">缩略图</option>
				<option value="3">垂直翻转</option>
				<option value="4">水平翻转</option>
				<option value="5">图片旋转</option>
				<option value="6">图片水印</option>
				<option value="7">文字水印</option>
			</select>
			<input type="submit" value="提交" /> 
		</form> 

控制器代码

public function upload_img()
	{			
			$file = request()->file('imagefil');
				
			#读取图片
			$image = Image::open($file);
			
			switch (request()->param('typeimg'))
			{
				case 1: #裁剪
					$image->crop(300,300,200,200);
					break;
				case 2: #缩略图
					$image->thumb(150,150,Image::THUMB_CENTER);
					break;
				case 3: #垂直翻转
					$image->flip();
					break;
				case 4: #水平翻转
					$image->flip(Image::FLIP_Y);
					break;
				case 5: #图片旋转 rotate:顺时针旋转的度数
					$image->rotate(30);
					break;
				case 6: #50是透明度
					$image->water(ROOT_PATH. 'logo.jpg',Image::WATER_NORTHWEST,50);
					break;
				case 7:
					$image->text('水印来了',ROOT_PATH.'public/ttfs/8.TTF',20,'#000000');
					break;
			}
			
			#保存图片
			$saveName = request()->time().'.png';
			$image->save(ROOT_PATH . 'public/uploads/'. $saveName);
			$this->success('图片处理完毕...','/public/uploads/'.$saveName,1);
		
	}
注:文字水印中,文字文件名称不能含有特殊符号或中文名称,最好命名为数字或英文名,否则会提示不存在的字体文件这个错误

生成缩略图的参数

  • 缩略图等比例缩放类型 THUMB_SCALING
  • 缩略图缩放后填充类型 THUMB_FILLED
  • 缩略图居中裁剪类型 THUMB_CENTER
  • 缩略图左上角裁剪类型 THUMB_NORTHWEST
  • 标识缩略图右下角裁剪类型 THUMB_SOUTHEAST
  • 缩略图固定尺寸缩放类型 THUMB_FIXED

图片水印所在的位置参数

  • 左上角水印 WATER_NORTHWEST
  • 上居中水印 WATER_NORTH
  • 右上角水印 WATER_NORTHEAST
  • 左居中水印 WATER_WEST
  • 居中水印 WATER_CENTER
  • 右居中水印 WATER_EAST
  • 左下角水印 WATER_SOUTHWEST
  • 下居中水印 WATER_SOUTH
  • 右下角水印 WATER_SOUTHEAST

文字水印参数

参数 默认 描述
text 不能为空 添加的文字
font 不能为空 字体文件路径
size 不能为空 字号,单位是像素
color #00000000 文字颜色
locate WATER_SOUTHEAST 文字写入位置
offset 0 文字相对当前位置的偏移量
angle 0 文字倾斜角度

save方法可以配置的参数

参数 默认 描述
pathname 必填项 图像保存路径名称
type 默认与原图相同 图像类型
quality 80 图像质量
interlace true 是否对JPEG类型图像设置隔行扫描


评论

大侠名号:   验证暗号: 点击我更换图片

修远兮

在这里记录每一点自己需要的知识

添加创始人微信,一起交流心得

推荐文章RECOMMEND