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


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

    安装扩展

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

    composer require topthink/think-image
    

    image-20200530155751608

    生成缩略图

    使用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';
    }
    

    image-20200530162020261

    控制器中使用

    <?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()]);
        }
    }
    

    image-20200530162008701

    运行结果

    image-20200530162228918

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

  • 相关阅读:
    jq validate的用法
    position:fixed定位
    postgresql-日志表
    postgresql-查看各个数据库大小
    postgresql-清空shared_buffers
    postgresql-int,bigint,numeric效率测试
    postgresql-查看表大小
    mongodb postgresql mysql jsonb对比
    postgresql和redis
    postgresql-死锁
  • 原文地址:https://www.cnblogs.com/makalochen/p/12993344.html
Copyright © 2020-2023  润新知