首页 > 编程语言 >JAVA 图片压缩

JAVA 图片压缩

时间:2023-02-03 16:33:26浏览次数:42  
标签:JAVA java read 压缩 int import image newHeight 图片

package image;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
* 功能描述:图片处理器
* 作者:唐泽齐
*/
public class ImageUtils {

public static void main(String[] args) {
try {
//原图片地址
String filePath = "image/test.jpg";
//要压缩的效果
int newHeight = 600;
int newWidth = 400;
//压缩后图片存放位置
String newPath = "image/1.jpg";
BufferedImage read = ImageIO.read(new File(filePath));
int height = read.getHeight();
int width = read.getWidth();
System.out.println("读取图片大小 = " + width + "X" + height);
System.out.println("缩放图片大小 = " + newWidth + "X" + newHeight);
//获取缩放的图片
Image image = read.getScaledInstance(newWidth, newHeight, read.getType());
//将缩放图片存入缓存
BufferedImage bufferedImage = new BufferedImage(newWidth, newHeight, read.getType());
Graphics graphics = bufferedImage.getGraphics();
graphics.drawImage(image, 0, 0, null);
graphics.dispose();
//输出图片
ImageIO.write(bufferedImage, "jpg", new File(newPath));
} catch (IOException e) {
e.printStackTrace();
}
}

}

标签:JAVA,java,read,压缩,int,import,image,newHeight,图片
From: https://www.cnblogs.com/tangzeqi/p/17089718.html

相关文章

  • Java多线程并发03—线程上下文,线程调度
    多任务系统往往需要同时执行多道作业。作业数往往大于机器的CPU数,然而一颗CPU同时只能执行一项任务,如何让用户感觉这些任务正在同时进行呢?操作系统的设计者巧妙地利......
  • Java多线程并发04—线程池的合理使用
    为什么使用线程池?线程池做的工作主要是控制运行的线程的数量。线程池的种类Java中常用的线程池主要有四种:newCachedThreadPool、newFixedThreadPool、newScheduledThreadPo......
  • 跳表java实现(可直接运行)
    跳表类packagecom.yjz.example.跳表;/***@author:yuanjinzhong*@date:2023/1/283:00PM*@description:*跳表类,参考项目:https://github.com/wangzhe......
  • javascript的正则表达式
    什么是正则表达式?正则表达式是构成搜索模式(searchpattern)的字符序列。当您搜索文本中的数据时,您可使用搜索模式来描述您搜索的内容。正则表达式可以是单字符,或者更复杂......
  • Nginx 一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...【转】
    。引言早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时......
  • java list<对象>根据某个字段分组
    前言仅供学习参考,不保证性能问题其中的实体类改成你自己的实体类代码/***根据某个字段进行分组,分组后遍历方法*<p>*Map<String,List<MyDoma......
  • Java lombok包中的常用注解,便捷化开发POJO类
    lombok包中的一些常用注解如何使用Lombok?Lombok提供注解方式来提高代码的简洁性,常用注解有:   @Data   @Setter@Getter   @NonNull   @Synchronized ......
  • 利用引用传递一次遍历构造菜单树(附java&go demo)
    目录原理讲解javademoGodemo优点原理讲解利用引用传递,当儿子的儿子变动的时候,自己的儿子的儿子也变动(取地址)javademopackagecom.huiyuan.algorithm;importjava.......
  • Java IO流文件
    JavaIO流文件创建文件使用File类进行创建文件操作,创建该对象包含三种构造方法newFile(Stringpathname);//根据路径+文件名创建一个File对象newFile(Fileparent......
  • JavaScript-超大文件上传-如何上传文件-大文件上传
    ​ 第一点:Java代码实现文件上传FormFilefile=manform.getFile();StringnewfileName= null;Stringnewpathname= null;StringfileAddre= "/numUp";try{......