1 借助 nfnt/resize 修改图片的尺寸
2 借助 原生的 image/jpeg 修改质量

package fyimage
import ("bytes""github.com/gogf/gf/os/glog""github.com/nfnt/resize""image""image/jpeg"
)// 默认最大高度
const MaxHeight uint = 1080// 当文件是JPEG格式时,对文件进行压缩。
// 压缩的方式主要是借助原生的image/jpeg 修改图片的质量和像素的大小。
// 该方案并不是最优的方案,通过客户端首次进行压缩会大大减少服务端的压力
// 文件小于 1MB 或者不是jpeg格式,不再压缩
func CompressImageResource(data []byte) []byte {if len(data) < 1024*1024 {return  data}img, _, err := image.Decode(bytes.NewReader(data))if err != nil {glog.Warningf("jpeg compress failed,err:%v",err)return data}// 修改图片的大小m := resize.Resize(0, MaxHeight, img, resize.Lanczos3)buf := bytes.Buffer{}// 修改图片的质量err = jpeg.Encode(&buf, m, &jpeg.Options{Quality: 60})if err != nil {glog.Warningf("jpeg compress failed,err:%v",err)return data}if buf.Len() > len(data) {return data}return buf.Bytes()
}

Golang修改图片JPEGjpg的大小和质量相关推荐

  1. 如何修改图片像素尺寸大小?如何改图片大小尺寸?

    修改图片尺寸是一项常见的图片处理技术,可以帮助我们将图片调整为不同的尺寸,以适应不同的用途.在进行修改图片大小(https://www.yasuotu.com/size)的时候,需要注意照片的比例.设 ...

  2. 怎么修改图片的kb大小?如何缩小照片kb?

    在平时的工作生活当中,我们经常需要使用到图片,当这些图片的kb过大时就会导致上传失败的情况发生,这时候应该怎么办呢?其实只需要将图片压缩就可以了,今天来给大家分享一款图片压缩工具,操作简单无需下载,几 ...

  3. Linux下修改图片格式和大小

    因为一直用的是ubuntu系统,所以习惯了用终端来操作一些东西,最近发现在linux上的修改图片的工具非常好用,在这里给大家分享一下. 这个工具就是ImageMagick;你会发现他非常 的好用,只需 ...

  4. PS CC 2015 修改图片颜色和大小

    为什么修改图片颜色? [预期:]设计师给的设计稿两种颜色的图片,图片尺寸要求是48x48像素,一张绿色,一张白色. [实际]绿色图片符合要求,白色图片是40x40像素,偏小.测试妹子不干了!!! [解 ...

  5. 怎么快速修改图片的尺寸大小?怎么修改图片分辨率?

    当我们在网上看到一张图片非常好看的图片,想要当做电脑或者手机壁纸的时候发现图片的尺寸不合适,那么我们怎么才能把图片调整到合适的尺寸呢?别着急,今天我就为大家带来一款简单易操作的在线P图工具(https ...

  6. 论坛怎么修改服务器照片大小,C# 如何修改图片的储存大小,比如10MB改为5MB。...

    你是指你希望"程序化"的自动伸缩图片大小吗? 你这个方案的确可以做,但是实现起来有点绕弯,其实目前各大网站做法是这么实现的: 准备2~3种同一个图片的不同大小格式(如完整尺寸70M ...

  7. php修改图片为指定大小,php裁剪图片为固定大小步骤详解

    这次给大家带来php裁剪图片为固定大小步骤详解,php裁剪图片为固定大小的注意事项有哪些,下面就是实战案例,一起来看一下. 做一个首页调用图像,有时需要获得固定大小的图像,因为首页的图像位置通常由设计 ...

  8. C# 修改图片文件分辨率大小

    将文件夹及子文件夹下的所有.jpg格式的图片宽度调整成统一大小,并包存到指定文件夹内. public static void ResizeImg(string srcFold, string desF ...

  9. php中怎么批量修改图片大小,如何一次性更改多张图片尺寸,怎样批量修改图片的尺寸大小...

    假如你从业的是文职类的工作中,那麼一定会有必须解决很多图片文档的情况下,碰到这类状况我提议大伙儿应用第三方软件来解决图片.文中强烈推荐一款超棒的多用途图片解决专用工具,不但适用图片一键批量处理,另外有 ...

最新文章

  1. 谈谈秒杀系统的落地方案
  2. matlab 基于GUI的PID研究
  3. Duilib学习笔记《04》— 窗体显示
  4. 鸿蒙系统被泼冷水,给鸿蒙泼冷水:见不得同行的好,是人间最可恶的蠢和恶
  5. java对csv格式的读写操作
  6. 吐血整理全网最全Spring面试题之高级篇(一)(共25题,附超详细解答)
  7. Redis学习(1)NoSQL非关系型数据库、Redis概述、Linux安装Redis
  8. 复制错误:安装程序无法复制文件 Atapi.sys
  9. Keil编译后——代码长度超过版本限制
  10. Python读文件报错:SyntaxError: Non-ASCII character in file
  11. 用树莓派学Linux(三)--------SSH端口转发,跳出局域网的树莓派控制
  12. php 获取扩展模块信息,查看PHP opcode扩展模块及Web服务
  13. Python-算法思维4.0.1迭代算法
  14. 使用kubespary安装k8s集群
  15. c语言赛车游戏代码大全,初学者天地游戏制作--赛车游戏的完整图
  16. 是不是太胖了(C语言)
  17. The error occurred while setting parameters,Communications The error may involve defaultParameterMap
  18. Day73.SpringMVC案例:影院系统、使用Restful风格重构
  19. java 生成ecc证书_升级支持ECC证书指南
  20. 第一行代码:Android(第三版)

热门文章

  1. fatal error: cusparse.h: No such file or directory compilation terminated. error: command ‘/usr/loca
  2. bootstrap 获取表格修改的结果_BootStrap实现带有增删改查功能的表格(DEMO详解)
  3. EndeavourOS安装配置全攻略!
  4. 2020年腾讯丶百度丶字节丶OPPO等Android面试大全,附带教你如何写好简历
  5. 迅雷高速下载免安装 Kali Linux
  6. 计算机主机发出滴滴声音怎么办,电脑主机有滴滴声音是怎么回事?
  7. 交互技术前沿学习分享——利用眼动追踪改良广告界面
  8. 如何让电脑带双显示屏,显示不同的内容
  9. 由一道bash jail题引出的琐事@_@
  10. 计算机硬件系统的外观组成图,计算机硬件系统及组装.doc