杰瑞科技汇

base64 转图片 java

在Java中将Base64字符串转换为图片

在Java中,你可以使用以下几种方法将Base64编码的字符串转换为图片文件:

使用Java标准库

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Base64;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Base64ToImage {
    public static void main(String[] args) {
        // 示例Base64字符串(实际使用时替换为你的Base64字符串)
        String base64String = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==";
        // 指定输出文件路径
        String outputPath = "output.png";
        try {
            // 解码Base64字符串
            byte[] imageBytes = Base64.getDecoder().decode(base64String);
            // 写入文件
            try (FileOutputStream fos = new FileOutputStream(outputPath)) {
                fos.write(imageBytes);
            }
            System.out.println("图片已成功保存到: " + outputPath);
        } catch (IOException e) {
            System.err.println("转换过程中发生错误: " + e.getMessage());
        }
    }
}

使用Apache Commons IO(更简洁)

首先添加依赖(Maven):

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>

然后使用以下代码:

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.Base64;
public class Base64ToImage {
    public static void main(String[] args) {
        String base64String = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==";
        String outputPath = "output.png";
        try {
            byte[] imageBytes = Base64.getDecoder().decode(base64String);
            FileUtils.writeByteArrayToFile(new File(outputPath), imageBytes);
            System.out.println("图片已成功保存到: " + outputPath);
        } catch (IOException e) {
            System.err.println("转换过程中发生错误: " + e.getMessage());
        }
    }
}

处理带有前缀的Base64字符串

有些Base64字符串可能带有前缀(如data:image/png;base64,),需要先去除:

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Base64;
public class Base64ToImage {
    public static void main(String[] args) {
        // 带有前缀的Base64字符串
        String base64WithPrefix = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==";
        // 去除前缀
        String base64String = base64WithPrefix.split(",")[1];
        String outputPath = "output.png";
        try {
            byte[] imageBytes = Base64.getDecoder().decode(base64String);
            try (FileOutputStream fos = new FileOutputStream(outputPath)) {
                fos.write(imageBytes);
            }
            System.out.println("图片已成功保存到: " + outputPath);
        } catch (IOException e) {
            System.err.println("转换过程中发生错误: " + e.getMessage());
        }
    }
}

注意事项

  1. 确保Base64字符串是有效的图片数据
  2. 处理大Base64字符串时要注意内存使用
  3. 根据图片类型(PNG、JPG等)设置正确的文件扩展名
  4. 异常处理很重要,特别是当输入数据无效时

代码示例展示了从Base64字符串创建图片文件的基本方法,你可以根据实际需求进行调整。

分享:
扫描分享到社交APP
上一篇
下一篇