17.ThinkPHP 扩展库:图像处理--生成缩略图

时间:2020-05-30
本文章向大家介绍17.ThinkPHP 扩展库:图像处理--生成缩略图,主要包括17.ThinkPHP 扩展库:图像处理--生成缩略图使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

官方手册:https://www.kancloud.cn/manual/thinkphp5_1/354123

安装扩展

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

composer require topthink/think-image

生成缩略图

使用thumb方法生成缩略图,例如:

$image = \think\Image::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 app\admin\controller;
use think\Controller;
use think\Image;
use think\Request;
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()]);
    }
}

运行结果

其他还有图像裁剪,翻转,水印等看官方手册即可。

原文地址:https://www.cnblogs.com/makalochen/p/12993344.html