Я думал, что найти решение этой проблемы относительно легко, но здесь я призываю помощь богов, чтобы вытащить меня из этой головоломки.
Итак, у меня есть изображение, и я хочу сохранить его в XML-документе с помощью Java. Я уже достиг этого в 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 файле, сделайте шаг вперед, даже если это просто ссылка на другой поток, который будет в порядке.
Приветствия заранее,
шумихи.