Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java压缩图片

作者:氵冗氵孚   发布日期:2026-05-31   浏览:55

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

public class ImageCompressor {

    // 该方法用于压缩图片,参数分别为源文件路径、目标文件路径以及缩放比例
    public static void compressImage(String srcImagePath, String destImagePath, double scale) {
        try {
            // 读取原始图片
            File srcFile = new File(srcImagePath);
            BufferedImage srcImage = ImageIO.read(srcFile);

            // 计算新的宽度和高度
            int width = (int) (srcImage.getWidth() * scale);
            int height = (int) (srcImage.getHeight() * scale);

            // 创建一个新的BufferedImage对象,用于保存缩放后的图像
            BufferedImage resizedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            Graphics2D g2d = resizedImage.createGraphics();
            g2d.drawImage(srcImage.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null);
            g2d.dispose();

            // 将缩放后的图像写入目标文件
            File destFile = new File(destImagePath);
            ImageIO.write(resizedImage, "jpg", destFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // 示例:将图片压缩为原来的一半大小
        compressImage("path/to/source/image.jpg", "path/to/destination/image.jpg", 0.5);
    }
}

解释说明:

  1. compressImage 方法:

    • 参数 srcImagePath: 源图片的文件路径。
    • 参数 destImagePath: 压缩后图片的目标文件路径。
    • 参数 scale: 图片缩放的比例(例如:0.5 表示压缩为原图的一半大小)。
  2. 读取原始图片:

    • 使用 ImageIO.read() 方法读取源图片文件,并将其存储在 BufferedImage 对象中。
  3. 计算新的宽度和高度:

    • 根据传入的缩放比例 scale,计算出新的宽度和高度。
  4. 创建缩放后的图像:

    • 使用 BufferedImage 创建一个新的图像对象,并使用 Graphics2D 绘制缩放后的图像。
  5. 保存压缩后的图片:

    • 使用 ImageIO.write() 方法将处理后的图像保存到指定的目标文件路径中。
  6. main 方法:

    • 提供了一个简单的示例,调用 compressImage 方法将图片压缩为原来的一半大小。

上一篇:java判断long是否为空

下一篇:java charat

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

jsonobject.tojavaobje

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站