java - 使用 Apache Commons 将图像转换为 Base64

标签 java image base64 apache-commons

我正在使用 Sun Micro Systems 的 BASE64Encoder 将图像转换为 Base64 字符串。问题是我在构建过程中收到了我不想要的警告

Java 代码..

     public static String encodeToString(BufferedImage image, String type) {
    String base64String = null;
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    try {
    ImageIO.write(image, type, bos);
    byte[] imageBytes = bos.toByteArray();
    BASE64Encoder encoder = new BASE64Encoder();
    base64String = encoder.encode(imageBytes);
    bos.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return base64String;
    }

警告:

  [javac] /Users/lucy/dev/workspace/flsv2/src/util/BufferImage.java:53: warning: BASE64Encoder is internal proprietary API and may be removed in a future release 
  [javac] BASE64Encoder encoder = new BASE64Encoder(); 
  [javac] ^ 
  [javac] /Users/lucy/dev/workspace/flsv2/src/util/BufferImage.java:53: warning: BASE64Encoder is internal proprietary API and may be removed in a future release 
  [javac] BASE64Encoder encoder = new BASE64Encoder(); 
  [javac] ^ 
  [javac] 2 warnings

有没有办法在上面的方法中使用Apache Commons而不产生警告?请帮助..

最佳答案

请不要使用内部 com.sun.* 包。如果您使用的是 v6 或更高版本,则可以使用 DatatypeConverter .那么您的代码将如下所示。

String base64String = DatatypeConverter.printBase64Binary(baos.toByteArray());
byte[] bytearray = DatatypeConverter.parseBase64Binary(base64String);

或者,

也可以使用:java.util.Base64 Java 1.8

新增的
String base64String = new String(Base64.getEncoder().encode(bytesToEncode));
byte[] decordedValue = Base64.getDecoder().decode(base64String);

或者,你可以在下面给出的apache commons中创建一个方法调用过程

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.StringUtils;

public String decode(String s) {
    return StringUtils.newStringUtf8(Base64.decodeBase64(s));
}
public String encode(String s) {
    return Base64.encodeBase64String(StringUtils.getBytesUtf8(s));
}

资源链接:

  1. > org.apache.commons.codec.binary.base64 Example
  2. > how to avoid warning for the Base 64?

关于java - 使用 Apache Commons 将图像转换为 Base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37431110/

相关文章:

java - 如何在 Spring/MyBatis 中使用事务?最佳实践?

java - TreeSets 和抽象类?

android - Android 中的自定义相机滤镜

actionscript-3 - AS3 - 压缩 ByteArray

java - 为什么我不能用java和php进行base64编码和解码?

java - 下面两行java代码有什么区别?

java - 使用自定义 hk2 InjectionResolver 注入(inject)应用程序配置

android - 在android上存储图像

image - 如何将 C# 图像转移到 Monotouch

c# - 如何可靠地将原始 XML 字符串写入文件,写入 base-64 编码字符串?