首页 > Web开发 > 详细

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

时间:2020-05-30 17:00:49      阅读:52      评论:0      收藏:0      [点我收藏+]

官方手册: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()]);
    }
}

技术分享图片

运行结果

技术分享图片

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

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!