当前位置:首页 > Java

java 如何保存图片

2026-04-09 05:55:07Java

保存图片的方法

在Java中保存图片可以通过多种方式实现,具体取决于图片的来源和保存格式。以下是几种常见的方法:

使用ImageIO类保存图片

ImageIO是Java标准库中用于处理图片的类,支持常见的图片格式(如JPEG、PNG等)。

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

public class SaveImage {
    public static void main(String[] args) {
        BufferedImage image = ...; // 获取图片对象
        File output = new File("output.jpg");
        try {
            ImageIO.write(image, "jpg", output);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

从URL下载并保存图片

如果需要从网络下载图片并保存到本地,可以使用URLInputStream

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;

public class DownloadImage {
    public static void main(String[] args) {
        String imageUrl = "https://example.com/image.jpg";
        String destination = "downloaded.jpg";
        try (InputStream in = new URL(imageUrl).openStream()) {
            Files.copy(in, Paths.get(destination));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用BufferedImageGraphics2D绘制并保存图片

如果需要动态生成图片并保存,可以使用BufferedImageGraphics2D

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

public class DrawAndSaveImage {
    public static void main(String[] args) {
        int width = 200;
        int height = 200;
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D g2d = image.createGraphics();
        g2d.setColor(Color.WHITE);
        g2d.fillRect(0, 0, width, height);
        g2d.setColor(Color.RED);
        g2d.drawString("Hello, World!", 50, 100);
        g2d.dispose();

        try {
            ImageIO.write(image, "png", new File("drawing.png"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

保存图片时指定质量(适用于JPEG)

如果需要调整JPEG图片的保存质量,可以使用ImageWriterImageWriteParam

java 如何保存图片

import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;

public class SaveJPEGWithQuality {
    public static void main(String[] args) {
        BufferedImage image = ...; // 获取图片对象
        File output = new File("output.jpg");
        try (FileOutputStream fos = new FileOutputStream(output)) {
            Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("jpg");
            ImageWriter writer = writers.next();
            ImageWriteParam param = writer.getDefaultWriteParam();
            param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
            param.setCompressionQuality(0.8f); // 设置压缩质量(0.0-1.0)

            try (ImageOutputStream ios = ImageIO.createImageOutputStream(fos)) {
                writer.setOutput(ios);
                writer.write(null, new IIOImage(image, null, null), param);
            }
            writer.dispose();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

注意事项

  • 保存图片时需要确保目标路径有写入权限。
  • 图片格式(如JPEG、PNG)会影响文件大小和质量。
  • 处理网络图片时需注意异常处理,如网络连接问题或无效URL。

标签: 图片java
分享给朋友:

相关文章

vue实现图片

vue实现图片

Vue 实现图片展示的方法 在 Vue 中实现图片展示可以通过多种方式完成,以下是一些常见的方法: 使用 img 标签直接引入 通过 img 标签的 src 属性直接引入本地或远程图片: <…

如何学习java

如何学习java

学习Java的步骤 理解基础知识 从Java的基本语法开始,包括变量、数据类型、运算符、控制流(if-else、循环)等。掌握这些基础概念是后续学习的基石。 学习面向对象编程(OOP) Java是一…

h5实现图片压缩

h5实现图片压缩

使用Canvas API压缩图片 HTML5的Canvas API可以通过调整画布尺寸和图像质量来实现图片压缩。创建一个Canvas元素,将图片绘制到Canvas上,再通过toDataURL或toBl…

vue实现图片预览

vue实现图片预览

实现图片预览功能 在Vue中实现图片预览功能可以通过多种方式完成,常见的有使用原生HTML5的<dialog>元素、第三方库如viewer.js或vue-photo-preview,以及自…

vue实现图片单选

vue实现图片单选

Vue 实现图片单选功能 在 Vue 中实现图片单选功能可以通过多种方式完成,以下是两种常见的实现方法: 方法一:使用 v-model 和单选按钮 通过将单选按钮与图片绑定,利用 v-mod…

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右键…