Ich habe ein byte [] -Array in Java, das die Bytes für ein Bild enthält, und ich muss es in ein Bild ausgeben. Wie würde ich das machen?Byte-Array zu Image-Objekt
Vielen Dank
Ich habe ein byte [] -Array in Java, das die Bytes für ein Bild enthält, und ich muss es in ein Bild ausgeben. Wie würde ich das machen?Byte-Array zu Image-Objekt
Vielen Dank
BufferedImage img = ImageIO.read(new ByteArrayInputStream(bytes));
Nach der Java-Dokumentation, es sieht aus wie Sie the MemoryImageSource Class verwenden müssen Ihren Byte-Array in ein Objekt im Speicher zu setzen, und dann Component.createImage (Imageproducer) nächste (vorbei in Ihrem MemoryImageSource verwenden , die ImageProducer implementiert).
Da es klingt wie Sie bereits wissen, welches Format das byte [] Array ist in (zum Beispiel RGB, ARGB, BGR etc.) Sie könnten in der Lage sein BufferedImage.setRGB(...) zu verwenden, oder eine Kombination aus BufferedImage.getRaster() und WritableRaster.setPixels(...) oder WritableRaster.setSamples(...). Leider erfordern diese beiden Methoden, dass Sie Ihr Byte [] je nach Bildformat in eines von int [], float [] oder double [] umwandeln.
Wenn Sie die Art des Bildes kennen und wollen nur eine Datei zu erzeugen, gibt es keine Notwendigkeit, eine BufferedImage Instanz zu erhalten. Schreiben Sie einfach die Bytes in eine Datei mit der korrekten Erweiterung.
OutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream(path));
out.write(bytes);
} finally {
if (out != null) out.close();
}
From Database.
Blob blob = resultSet.getBlob("pictureBlob");
byte [] data = blob.getBytes(1, (int) blob.length());
BufferedImage img = null;
try {
img = ImageIO.read(new ByteArrayInputStream(data));
} catch (IOException e) {
e.printStackTrace();
}
drawPicture(img); // void drawPicture(Image img);
Das ist nicht die Frage nicht beantworten, war die Frage, auf eine Bilddatei zum Schreiben. Diese Antwort dient zum Lesen von einer Bilddatei. Was ist mit den ganzen Stimmen? – Sixtoo
Der Titel sagt das, aber die Frage sagt, sie haben ein Byte-Array und brauchen ein Image, das ist was das tut. –