Java实现:将图片轻松压缩至指定大小,附完整代码!
好的,以下是一个Java程序,可以将图片压缩至指定大小并保存到指定路径: ```java import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class ImageCompressor { public static void main(String[] args) { String inputPath = "input.jpg"; // 输入图片路径 String outputPath = "output.jpg"; // 输出图片路径 int compressQuality = 80; // 压缩质量,范围为0-100 int outputSize = 500; // 输出图片大小,单位为像素 try { // 读取输入图片 BufferedImage inputImage = ImageIO.read(new File(inputPath)); // 压缩图片并保存到输出路径 BufferedImage outputImage = compressImage(inputImage, outputSize, compressQuality); File outputFile = new File(outputPath); ImageIO.write(outputImage, "jpg", outputFile); System.out.println("图片已成功压缩并保存至指定路径:" + outputPath); } catch (IOException e) { e.printStackTrace(); } } private static BufferedImage compressImage(BufferedImage image, int outputSize, int quality) { int type = image.getType() == BufferedImage.TYPE_INT_RGB ? BufferedImage.TYPE_INT_ARGB : image.getType(); BufferedImage outputImage = new BufferedImage(outputSize, outputSize, type); outputImage.getGraphics().drawImage(image, 0, 0, null); outputImage.getGraphics().dispose(); return outputImage; } } ``` 这个程序使用了Java的`javax.imageio`包中的`ImageIO`类来读取和写入图片。在程序中,首先指定了输入图片的路径、输出图片的路径以及压缩质量(百分比)和输出大小(像素数)。然后,程序读取输入图片,调用`compressImage()`方法对图片进行压缩,并将压缩后的图片保存到输出路径。`compressImage()`方法使用了一个自定义的`BufferedImage`对象来存储压缩后的图片,并返回该对象。程序将压缩后的图片写入文件并输出成功信息。注意,这个程序只支持JPEG格式的图片压缩。如果需要支持其他格式的图片压缩,需要使用相应的库或方法来实现。 ######[AI写代码神器 | 552点数解答 | 2024-02-27 09:38:56]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)423
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)325
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1203
- Java 利用 Apache Commons Imaging 压缩 PNG 图片至指定大小,附代码及注意事项(阿里通义 | 524点数解答 | 2024-02-27 13:54:15)305
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)364
- 用C++解决P2197扩建花坛问题:计算长方形花坛扩建为正方形最少增加的面积(字节豆包 | 280点数解答 | 2026-03-22 16:46:21)30
- C++ 实现我的世界基岩版:从简单框架到开发要点揭秘(字节豆包 | 182点数解答 | 2025-02-22 15:53:11)210
- C++ 实现完整斗地主:含洗牌、发牌与手牌展示,可按需扩展!(字节豆包 | 1028点数解答 | 2026-01-10 08:02:37)52
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)335
- "Java Code: Uncovering Stock Statistics through CSV File Reading"(字节豆包 | 66点数解答 | 2024-11-13 15:31:04)334
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)489
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)374