我認爲我會相對容易地找到解決這個問題的方法,但在這裏我呼籲來自上帝的幫助讓我擺脫這個難題。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