官方手册:https://www.kancloud.cn/manual/thinkphp5_1/354123
安装扩展
使用Composer
安装ThinkPHP5
的图像处理类库:
composer require topthink/think-image
生成缩略图
使用thumb
方法生成缩略图,例如:
$image = hinkImage::open('./image.png');
// 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.png
$image->thumb(150, 150)->save('./thumb.png');
注意打开生成缩略图的图片,会被删除保留缩略图
例:
自定义函数获取public路径
<?php
// 应用公共文件
//得到public路径地址
//DIRECTORY_SEPARATOR是php的内部常量,用于显示系统分隔符的命令,不需要任何定义与包含即可直接使用
//window 就是 linux上就是/
function public_path(){
return dirname(__DIR__).DIRECTORY_SEPARATOR.'public';
}
控制器中使用
<?php
namespace appadmincontroller;
use thinkController;
use thinkImage;
use thinkRequest;
class Upload extends Controller
{
//上传界面
public function index(){
return view('admin@/upload/index');
}
//上传处理
public function upload(Request $request){
//dump($request->file());
$file = $request->file('pic');
// 移动到框架应用根目录/uploads/ 目录下
$info = $file->move( './uploads');
if($info){
$savename = '/uploads/'.str_replace('\','/', $info->getSaveName());
//打开图片
$image = Image::open(public_path().$savename);
// 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.png
$image->thumb(150, 150)->save(public_path().$savename);
return json(['static' => 0, 'msg' => $savename]);
}
return json(['static' => 1, 'msg' => $file->getError()]);
}
}
运行结果
其他还有图像裁剪,翻转,水印等看官方手册即可。