图片压缩,用这个就够了(代码片段)

buguge buguge     2022-12-25     645

关键词:

现在的智能手机分辨率都很高,拍的高清照片动辄5M甚至7M。

上传到系统的图片太大了,导致页面加载缓慢。

为此,让组里一小伙做一个压缩工具。发版后,发现图片虽然是压缩了,不过有个别图片严重失真。

 

 然后,在网上查资料,发现有人分享google提供的开源工具Thumbnailator。

maven dependency引入方式:

<dependency>
   <groupId>net.coobird</groupId>
   <artifactId>thumbnailator</artifactId>
   <version>0.4.8</version>
</dependency>

代码简洁:

import net.coobird.thumbnailator.Thumbnails;
import org.junit.Test;

public class ImageUtilTest 

    @Test
    public void googleImgThumb() throws Exception
        String path="D:\\\\Users\\\\liziqi\\\\130******92-驾驶证照片-org.jpg";
        Thumbnails.of(path)
                .scale(0.5f)
                .outputQuality(1)
                .toFile("D:\\\\Users\\\\liziqi\\\\130******92-驾驶证照片.jpg");
    

 

通过比较,Google提供的这个工具果然完胜。

 参考:https://www.cnblogs.com/linkstar/p/7412012.html

呕心沥血整理,nginx看这个就够了(代码片段)

NginxNginx官方文档OpenResty官方文档一、Nginx概述二、Nginx结构三、Nginx模块ngx_http_core_module(location、rewrite)ngx_http_access_module实现基于ip的访问控制功能实现基于用户的访问控制ngx_http_stub_status_modulengx_http_log_moduleng 查看详情

java使用itextpdf7操作pdf,写入照片这一篇就够了(代码片段)

...textPdf7操作pdf,写入照片这一篇就够了1.效果图1.1M*N列图片(无边界&有边界)1.2图片重叠1.3文字背景图片1.4图片与文字相邻&图片文字Rowspan样式1.5一个单元格多图片&多图片文本内容1.6单元格中文本图片位置设... 查看详情

android:学习aidl,这一篇文章就够了(上)(代码片段)

 前言在决定用这个标题之前甚是忐忑,主要是担心自己对AIDL的理解不够深入,到时候大家看了之后说——你这是什么玩意儿,就这么点东西就敢说够了?简直是坐井观天不知所谓——那样就很尴尬了。不过又转... 查看详情

elasticsearch入门,看这一篇就够了(代码片段)

Elasticsearch入门,看这一篇就够了前言可视化工具kibanakibana的安装kibana配置kibana的启动Elasticsearch入门操作操作index创建index索引别名有什么用删除索引查询索引exist索引操作document插入document查询document删除document更新document使用... 查看详情

干货chrome插件(扩展)开发全攻略2.6w字,看这篇就够了!(代码片段)

...chrome-plugin-demo,大家可以直接下载下来运行。另外,本文图片较多,且图片服务器带宽有限,右下角的目录滚动监听必须等到图片全部加载完毕之后才会触发,所以请耐心等待加载完毕。本文目录:d 查看详情

python代码用在这些地方,其实1行就够了!(代码片段)

摘要:都说Python简单快捷,那本篇博客就为大家带来一些实用的Python技巧,而且仅需要1行代码,就可以解决一些小问题。本文分享自华为云社区《你猜1行Python代码能干什么呢?神奇的单行Python代码》,作... 查看详情

开源代码托管平台codechina怎么用?看这篇就够了(代码片段)

关于GitHub,相信每个程序员都知道,它是一个基于Git实现的在线代码仓库,也是目前最大的代码托管平台。但知道和做到之间往往有道鸿沟,GitHub作为一个外文网站,因为一些众所周知的原因,国内经常无... 查看详情

java面向对象知道这些就够了(代码片段)

...关注动作执行的每一个细节—自己动手做面向对象重点找这个对象,只要找到了对象,那么这个对象所具有的功能就能够被使用—找别人做类与对象的关系根据一类对象进行抽取和总结,将这类对象的特征抽取成了属性,将这类... 查看详情

promise看这篇就够了(代码片段)

...是也有一个不好的地方,当我们有很多回调的时候,比如这个回调执行完需要去执行下个回调,然后接着再执行下个回调,这样就会造成层层嵌套,代码不清晰,很容易进入“回调监狱”,就容易造成下边的例子:async(1,fu... 查看详情

前端面经-看这篇就够了(笔者靠这个拿到阿里和字节的offer)(代码片段)

转载自:alanyfhttps://juejin.cn/post/6948227795059212318面试题梳理梳理前端常见面试题及答案。一、web前端性能优化性能评级工具(PageSpeed或YSlow)cssCSS优化、提高性能的方法有哪些多个css合并,尽量减少HTTP请求将css文件... 查看详情

k8sservice服务详解,看这一篇就够了!!(代码片段)

...端实例的动态变化和对多实例的负载均衡,引入了Service这个资源对象,如 查看详情

前端登录,这一篇就够了(代码片段)

...首先要和服务器端建立一个连接,在请求完成后又会断开这个连接。这种方式可以节省传输时占用的连接资源,但同时也存在一个问题:每次请求都是独立的,服务器端无法判断本次请求和上一次请求是否来自同一个用户,进而... 查看详情

最近迷上了源码,tomcat源码,看我这篇就够了(代码片段)

...环境配置1.2.1增加POM依赖管理文件解压apache-tomcat-8.5.63-src压缩包,得到⽬录apache-tomcat-8.5.63-src进⼊apa 查看详情

就够了(代码片段)

...tegercode;@Builder.defaultprivateStringname="";错误分析这个错误,根据字面上的意思是调用构造器的时候,属性参数没有构造成功。根据刚刚加的那个字段来判断,应该是@Builder.default这个地方报错了。@Builder... 查看详情

分布式锁看这篇就够了(代码片段)

...只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标记,其余后续线程发现已经有标记了则等待拥有标记的线程结束同步代码块 查看详情

就够了(珍藏版)(代码片段)

...学习目录二、扩展目录一、学习目录认识MongoDB一篇文章就够了Windows平台安装MongoDB教程Linux上安装MongoDBwindows安装MongoDB,Robo3T一篇文章带你搞定MongoDB的基本操作(增、删、改、查)MongoDB数据类型MongoDB文档更新操作Mong... 查看详情

学习javajunit单元测试一篇文章就够了(代码片段)

...ttest):单元测试关注单一的类.它们存在的目的是检查这个类中的代码是否按照期望正确运行.(2)集成测试(Integrationtest):顾名思义,集成测试是检 查看详情

就够了(代码片段)

本文目录前言shiro几大核心组件shiro配置信息Cookie被禁用了还可以使用Shiro框架吗?Cookie过期了会自动删除缓存的Session信息吗?shiro实现Cookie、Token双兼容如何做到登出后清除认证、授权、Session缓存?如何对Session进行CRUD测... 查看详情