Myślałem, że znajdę rozwiązanie tego problemu stosunkowo łatwo, ale tutaj wzywam pomoc bogów, aby wyciągnąć mnie z tej zagadki.Java - kodowanie obrazu w XML
Tak, mam obraz i chcę go przechowywać w dokumencie XML przy użyciu Java. Wcześniej osiągnąłem to w VisualBasic, zapisując obraz do strumienia, konwertując strumień do tablicy, a następnie klasa xml VB była w stanie zakodować tablicę jako łańcuch base64. Ale po kilku godzinach przeszukiwania sieci w poszukiwaniu równoważnego rozwiązania w Javie wróciłem z pustymi rękami. Jedynym sukcesem miałem został przez:
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();
}
Który jest w porządku, jak sądzę, ale odwrócenie procesu, aby ją z powrotem do obrazu, gdy załadować plik XML okazało się niemożliwe. Jeśli ktokolwiek ma lepszy sposób kodowania/dekodowania obrazu w pliku XML, prosimy o krok dalej, nawet jeśli jest to link do innego wątku, który byłby w porządku.
Cheers wcześniej,
boom.
Mam zamiar być całkowicie nieprzydatne, ale: dlaczego? Dlaczego chcesz przechowywać obrazy w formacie XML? Czy jest lepszy sposób to zrobić? Gdybym znalazł się w takiej sytuacji, zastanawiałbym się nad tym, co robię i dlaczego. –
Cześć Mike, to jest ważny punkt - prawdopodobnie jest lepszy sposób i otwieram się na sugestie. Głównym celem dokumentu XML jest przechowywanie informacji o uczelni. Prowadzi szereg kampusów, które z kolei zachowują tablice pokoi. Obrazy, które przechowuję są mapami dla kampusów. Uznałem, że XML jest prawdopodobnie najlepszym sposobem przechowywania danych rodzic-dziecko. Ale daj mi znać, jeśli masz lepszą propozycję! – Hoopla