私はこの問題の解決策を比較的簡単に見つけることができると思っていましたが、私はあなたの神の助けを借りてこの難点から私を引き抜こうとしています。Java - XMLによるイメージエンコーディング
画像があり、Javaを使用してXML文書に保存したいと考えています。私はこれまでVisualBasicで画像をストリームに保存し、ストリームを配列に変換してから、VBのxmlクラスで配列をbase64文字列としてエンコードすることでこれを実現しました。しかし、Javaの同等のソリューションのためにネットを精練して2時間後、私は空手に戻りました。私が持っていた唯一の成功がでてきました:私は推測大丈夫です
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に保存したいのですか?これを行うより良い方法はありますか?私がこのような状況で自分自身を見つけたら、私がやっていることとその理由を再考するだろう。 –
こんにちはマイク、それは有効な点です - おそらくもっと良い方法があり、私は提案をします。 XML文書の主な目的は、大学に関する情報を保存することです。それは順番に部屋の配列を保持するキャンパスの配列を保持します。私が保管している画像はキャンパス用のマップです。おそらくXMLは親子データを格納する最良の方法だと思っていました。しかし、より良い提案があれば教えてください! – Hoopla