美文网首页
ThinkPHP图片处理(压缩、水印)

ThinkPHP图片处理(压缩、水印)

作者: 十万个魏什么啊 | 来源:发表于2020-05-22 12:09 被阅读0次

图片压缩

我们经常会碰到一个问题,当用户发表动态上传图片或上传头像时,会选择手机里拍摄的照片。但是现在手机像素高,拍摄的照片动辄几M,我们如果把一个几M的图片存到服务器,后续的每次读取都会造成极差的用户体验,因此需要进行图片压缩处理。

  • 前提条件,已安装ThinkPHP5的图像处理类库
    如果没有安装,可用过Composer安装ThinkPHP5的图像处理类库:
    运行:composer require topthink/think-image
  • 此处为接口上传图片,如果后台上传,类比操作即可
public function upload_img(){
        $file = request()->file('image');
        // dump($file);die;
        // 将前端传过来的图片移动到项目目录下
        $info = $file->move('./upload/mobile');
        // dump($info);
        if($info){
            $file_edit = $info->getInfo();
            // dump($file_edit);
            // *我们这里通过图片的大小判断图片是否需要被压缩,当然数值可以更改为你需要的
            if($file_edit['size'] > 100000){// 大于100K的图片进行处理
                // 获取上传的图片,进行图片压缩
                $image = \think\Image::open($info);
                // 保存图片的路径处理
                $date = date('Ymd');
                $name = $info->getSavename();
                $url_edit = './upload/mobile/'.$name;
                // dump($url);die;
                // 保存
                // 默认会按比例保存,但是最大宽度、高度不超过thumb(400, 400)设定值
                $img_edit = $image->thumb(400, 400)->save($url_edit);
                $url = $name;
            }else{
                $url = $info->getSavename();
            }
            return $this->json_success('上传成功', $url);
        }else{
            // 上传失败获取错误信息
            return $this->json_error('上传失败');
        }     
    }

图片加水印

  • 前提条件同上,已安装ThinkPHP5的图像处理类库
  • 此处是后台上传图片加水印,如果接口上传,类比操作即可
public function add(){
    if ($this->request->isPost()) {
            $data     = $this->request->post();
             // 获取上传成功的图片路径
             $roth = './upload/'.$data['photo'];
             // 打开图片
             $image = \think\Image::open($roth);
             // 加图片水印,其中water.png是已经做好的水印图片放在根目录下
             $image->water('./water.png',\think\Image::WATER_NORTHWEST)
                ->save($roth);

             dump($data);die;
             .....
    }
}

更多ThinkPHP5.1关于图片处理操作可参考 点击跳转

相关文章

  • ThinkPHP图片处理(压缩、水印)

    图片压缩 我们经常会碰到一个问题,当用户发表动态上传图片或上传头像时,会选择手机里拍摄的照片。但是现在手机像素高,...

  • iOS 图片处理

    本文主要列出简单的图片处理代码,如:压缩图形大小,裁剪图片,添加文字水印,添加图片水印,压缩图片大小并保存。 本来...

  • 强大的图片处理工具GraphicsMagick

    前言 项目中我们经常需要对图片进行压缩、剪切、添加水印、生成缩略图、图片合成等图片处理操作,关于这些图片复杂处理,...

  • 带你玩转七牛云存储——高级篇

    七牛云图片存储优点 支持各种尺寸的图片缩放; 支持图片自动压缩; 支持水印添加:图片水印、文字水印两种模式; 图片...

  • nodejs gm图片处理

    引入fs 、gm模块npm install gm 压缩图片 裁切图片 水印

  • 对于文章图片中水印的问题

    处理图片水印:下面的函数可以处理局部的水印,详细请看函数文档该函数适合处理位置固定的水印. 在水印位置覆盖新的水印...

  • thumbnails图像处理库的使用

    前言: thumbnails是Java一个优秀的图像处理库,可以对图片进行压缩、加水印、裁剪、更改格式等功能。下面...

  • 怎样去掉日常(批量)图片和视频中的水印

    这次小咖不仅要教大家如何快速去掉图片水印,还要教大家如何批量处理掉视频中的水印!!真的超快超好用! 图片水印处理 ...

  • 柠檬水印助手app技术服务支持

    柠檬水印助手是一块好用的水印处理软件,可以视频图片去水印,加水印。

  • iOS 图片压缩方法

    iOS 图片压缩方法 更多图片处理方法见图片组件 BBWebImage iOS 图片压缩方法 两种图片压缩方法 两...

网友评论

      本文标题:ThinkPHP图片处理(压缩、水印)

      本文链接:https://www.haomeiwen.com/subject/xghqahtx.html