首页 > 编程语言 >在线直播系统源码,java使用Thumbnailator实现图片压缩

在线直播系统源码,java使用Thumbnailator实现图片压缩

时间:2023-08-25 14:11:25浏览次数:29  
标签:java -- Thumbnailator 源码 400 size 图片

在线直播系统源码,java使用Thumbnailator实现图片压缩

1.添加jar包

 


<!-- Thumbnailator 图片压缩 -->
<dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.8</version>
</dependency>
 

2.常用方法

 


// 原图文件路径
Thumbnails.of(file.getInputStream())
        .scale(1f) // 值在0到1之间,1f就是原图大小,0.5就是原图的一半大小
        .outputQuality(0.1f) // 值也是在0到1,越接近于1质量越好,越接近于0质量越差
        .toFile(img); // 压缩后文件的路径
 

 

3.其他用法

 


1.指定大小比例进行缩放--考虑图片的完整度
  size(宽度, 高度)
2.按照比例进行缩放
  scale(比例)
3.不按照比例,指定大小进行缩放--不考虑图片的完整度
  size(宽度, 高度).keepAspectRatio(false)
4.图片旋转
  size(宽度, 高度).rotae(90) -- 旋转90度(必须加size不然报错)
5.水印
  BOTTOM_RIGHT 右下角
  CENTER       中心
  size(宽度, 高度).watermark(Positions.CENTER,)
      .size(1280, 1024)
      .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("d:/uploadImg/head.png")), 0.5f)
      .outputQuality(0.8f)
      .toFile(dest);
6.裁剪 -- 以图片中心400*400区域
  .sourceRegion(Positions.CENTER, 400,400)
  .size(200,200).keepAspectRatio(false)
7.转化图像格式
  .size(200,200).outputFormat(".png") 

 

  以上就是在线直播系统源码,java使用Thumbnailator实现图片压缩, 更多内容欢迎关注之后的文章

 

标签:java,--,Thumbnailator,源码,400,size,图片
From: https://www.cnblogs.com/yunbaomengnan/p/17656779.html

相关文章

  • java的反射到底是有什么用处?怎么用?
    首先,明白静态语言与动态语言的区别Java是一门静态语言,但是反射提供了一种黑魔法,允许在运行时去动态修改一个类的定义,一个对象的属性等等,给静态语言加上了“动态”的效果Java反射可以简单的理解为Class的一种抽象,我们知道,Java是面向对象语言,一切皆对象,都是某种抽象,可以理解反射就是......
  • 超详细!中标麒麟7下源码安装Zabbix 5.0(同样适用CentOS/RedHat)
    摘要本文详细记录了在中标麒麟7下安装Zabbix5.0的过程,包含Server、Agent、Web页面的安装以及MySQL的初始化。安装方法同样适用于CentOS与RedHat。1相关背景说明1.1操作系统版本服务器的操作系统为中标麒麟7,中标麒麟可以通过nkvers命令,查看操作系统详细信息:查看记录了操作系统发......
  • Java反射是什么?
    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类;在运行时构造......
  • java线程池
    Executors创建线程的4种方法//1.newSingleThreadExecutor创建“单线程化线程池”//特点://单线程化的线程池中的任务是按照提交的次序顺序执行的。//只有一个线程的线程池。//池中的唯一线程的存活时间是无限的。//......
  • java.lang.NoClassDefFoundError问题解决方案
    骑士李四记录:场景在pom.xml中引入一个包,之后启动部署项目,出现java.lang.NoClassDefFoundError的问题。报错信息:解决方案:加入这段代码<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executi......
  • Spring框架源码结构
    骑士李四记录:Spring源码解析Spring是一款用于简化企业级Java应用开发的分层开源框架,它有着强大的扩展、融合能力,善于将各种单层框架完美地糅合在一起,并建立一个完整体系,统一、高效地构造可提供企业级服务的应用系统。Spring主要分为8大模块:数据处理模块(DataAccess/Integration)、......
  • java中 while循环和 do while循环的区别| while与do while的区别
    1、while循环:表示如果条件满足,程序一直循环执行,直到条件不满足为止。所以while循环的条件一般通过变量来进行控制,在循环体内对变量值做相应改变,以便在适当的时候退出,避免陷入死循环。inti=1;while(i<5){//业务逻辑if(i%2>0){System.out.print(“i是偶数”)}else{Sys......
  • 基于java的教学辅助平台
    随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了教学辅助平台的开发全过程。通过分析教学辅助平台管理的不足,创建了一个计算机管理教学辅助平台的方案。文章介绍了教学辅助平台的系统分析部分,包括可行性分析等,系统设计部分主要介绍了......
  • 解放双手!ChatGPT助力编写JAVA框架! | 京东云技术团队
    亲爱的Javaer们,在平时编码的过程中,你是否曾想过编写一个Java框架去为开发提效?但是要么编写框架时感觉无从下手,不知道从哪开始。要么有思路了后对某个功能实现的技术细节不了解,空有想法而无法实现。如果你遇到了这些问题,看完这篇文章你也能用ChatGPT编写一个简单的JAVA框架。构思清......
  • 【Java复杂系统实战经验-2023-08月】Java基础,Path路径计算编码
    Java程序设计-个人月报-2023-08月背景在本月,给负责的项目做了一次文件存储的迁移工作。历史原因,开发阶段由于图简便,使用了本地文件存储。后面经过容器化上云,导致应用出现上传文件分发的多节点的问题。本项工作的经验,受益于Java基础Path的一些API,颇有收获。复杂的系统应当构......