Java-GIF到base64字符串
如何将gif转换为base64 这是我到目前为止所做的尝试Java-GIF到base64字符串,java,gif,Java,Gif,如何将gif转换为base64 这是我到目前为止所做的尝试 public static String convertImageToBase64(String urlString, String type ){ String imageString = null; ByteArrayOutputStream bos = new ByteArrayOutputStream(); try { URL url = new URL(urlString);
public static String convertImageToBase64(String urlString, String type ){
String imageString = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
URL url = new URL(urlString);
BufferedImage img = ImageIO.read( url );
ImageIO.write(img, type, bos);
byte[] imageBytes = bos.toByteArray();
BASE64Encoder encoder = new BASE64Encoder();
imageString = encoder.encode(imageBytes);
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
return imageString;
}
上面的代码正在工作,但它丢失了您必须使用的动画
public String encodeToString(byte[] src)
类的BASE64.Encoder
(来自Java8)您必须使用
public String encodeToString(byte[] src)
类的BASE64.Encoder
(来自Java8)您必须使用
public String encodeToString(byte[] src)
类的BASE64.Encoder
(来自Java8)您必须使用
public String encodeToString(byte[] src)
类的
BASE64.Encoder
(来自java 8)很可能类BuffereImage不支持带有动画的图像。因此,代码只打开并解析图像到第一帧
相反,请尝试直接使用获取字节,然后将下载的字节转换为base64
请注意,通过这种方式,您无法确保下载的文件实际上是一个图像,因为您根本没有打开它。这可能需要,也可能不需要。很可能BuffereImage类不支持带有动画的图像。因此,代码只打开并解析图像到第一帧 相反,请尝试直接使用获取字节,然后将下载的字节转换为base64
请注意,通过这种方式,您无法确保下载的文件实际上是一个图像,因为您根本没有打开它。这可能需要,也可能不需要。很可能BuffereImage类不支持带有动画的图像。因此,代码只打开并解析图像到第一帧 相反,请尝试直接使用获取字节,然后将下载的字节转换为base64
请注意,通过这种方式,您无法确保下载的文件实际上是一个图像,因为您根本没有打开它。这可能需要,也可能不需要。很可能BuffereImage类不支持带有动画的图像。因此,代码只打开并解析图像到第一帧 相反,请尝试直接使用获取字节,然后将下载的字节转换为base64
请注意,通过这种方式,您无法确保下载的文件实际上是一个图像,因为您根本没有打开它。这可能需要,也可能不需要。我假设您需要的是GIF文件本身的Base64表示,而不是ImageIO表示。如果您有一个没有内置Base64支持的较旧版本的Java,我们将完成这项工作。使用
URL.openStream()
,而不是使用ImageIO,将文件读入字节数组,然后调用Base64.encodeBase64String
。如果要对结果URL进行编码,请调用Base64.encodeBase64URLSafe
如果您真的想要ImageIO表示,那么您将无法获得动画。我假设您想要的是GIF文件本身的Base64表示,而不是ImageIO表示。如果您有一个没有内置Base64支持的较旧版本的Java,我们将完成这项工作。使用
URL.openStream()
,而不是使用ImageIO,将文件读入字节数组,然后调用Base64.encodeBase64String
。如果要对结果URL进行编码,请调用Base64.encodeBase64URLSafe
如果您真的想要ImageIO表示,那么您将无法获得动画。我假设您想要的是GIF文件本身的Base64表示,而不是ImageIO表示。如果您有一个没有内置Base64支持的较旧版本的Java,我们将完成这项工作。使用
URL.openStream()
,而不是使用ImageIO,将文件读入字节数组,然后调用Base64.encodeBase64String
。如果要对结果URL进行编码,请调用Base64.encodeBase64URLSafe
如果您真的想要ImageIO表示,那么您将无法获得动画。我假设您想要的是GIF文件本身的Base64表示,而不是ImageIO表示。如果您有一个没有内置Base64支持的较旧版本的Java,我们将完成这项工作。使用
URL.openStream()
,而不是使用ImageIO,将文件读入字节数组,然后调用Base64.encodeBase64String
。如果要对结果URL进行编码,请调用Base64.encodeBase64URLSafe
如果你真的想要ImageIO表示,那么你就必须放弃动画。我使用的是java8,你是说从java.Util开始,我很难实例化BASE64.Encoder类。。你能展示我需要做的更多吗?只需编写以下imageString=Base64.encodeToString(imageBytes);我使用java8,你是说从java.Util开始,我很难实例化BASE64.Encoder类。。你能展示我需要做的更多吗?只需编写以下imageString=Base64.encodeToString(imageBytes);我使用java8,你是说从java.Util开始,我很难实例化BASE64.Encoder类。。你能展示我需要做的更多吗?只需编写以下imageString=Base64.encodeToString(imageBytes);我使用java8,你是说从java.Util开始,我很难实例化BASE64.Encoder类。。你能展示我需要做的更多吗?只需编写以下imageString=Base64.encodeToString(imageBytes);