我认为我会相对容易地找到解决这个问题的方法,但在这里我呼吁来自上帝的帮助让我摆脱这个难题。Java - 用XML编码的图像编码
所以,我有一张图片,我想用Java将它存储在一个XML文档中。我以前在VisualBasic中通过将图像保存为流,将流转换为数组,然后VB的xml类能够将数组编码为base64字符串来实现此目的。但是,经过几个小时的网上搜索Java的等效解决方案之后,我已经空手而回。我有唯一的成功是由:
import it.sauronsoftware.base64.*;
import java.awt.image.BufferedImage;
import org.w3c.dom.*;
...
BufferedImage img;
Element node;
...
java.io.ByteArrayOutputStream os = new java.io.ByteArrayOutputStream();
ImageIO.write(img, "png", os);
byte[] array = Base64.encode(os.toByteArray());
String ss = arrayToString(array, ",");
node.setTextContent(ss);
...
private static String arrayToString(byte[] a, String separator) {
StringBuffer result = new StringBuffer();
if (a.length > 0) {
result.append(a[0]);
for (int i=1; i<a.length; i++) {
result.append(separator);
result.append(a[i]);
}
}
return result.toString();
}
这是好的我猜想,但在倒车过程中把它找回来到图像时,我加载XML文件已被证明是不可能的。如果任何人有更好的方式来编码/解码XML文件中的图像,请继续前进,即使它只是一个链接到另一个线程就没问题。
提前欢呼,
Hoopla。
我将成为完全无益,但是:为什么?你为什么要用XML存储图像?有一个更好的方法吗?如果我发现自己处在这种情况下,我会重新考虑我在做什么以及为什么。 – 2009-08-22 02:20:21
嗨迈克,这是一个有效的点 - 有可能是一种更好的方式,我接受建议。 XML文档的主要目的是存储有关大学的信息。它保留了一系列校园,反过来保持房间的阵列。我存储的图像是校园地图。我认为XML可能是存储父子数据的最佳方式。但请让我知道你是否有更好的建议! – Hoopla 2009-08-22 12:43:25