Über Bild konvertieren byte [] - und Rückseite in Java
habe ich ein problem, wenn ich das Bild konvertieren byte[] und Umgekehrt:
Ich habe 2 Funktion Bild konvertieren byte[] wie folgt
public byte[] extractBytes2 (String ImageName) throws IOException {
File imgPath = new File(ImageName);
BufferedImage bufferedImage = ImageIO.read(imgPath);
WritableRaster raster = bufferedImage .getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
return ( data.getData() );
}
und
public byte[] extractBytes (String ImageName) throws IOException
{
Path path = Paths.get(ImageName);
byte[] data = Files.readAllBytes(path);
return data;
}
Habe ich byte[] byteArray
byteArray = extractBytes2("image/pikachu.png");
oder
byteArray = extractBytes("image/pikachu.png");
wenn ich konvertieren byte[] Bild, das ich verwenden
Graphics g = panelMain.getGraphics();
Graphics2D g2D = (Graphics2D) g;
try {
InputStream in = new ByteArrayInputStream(byteArray);
BufferedImage image = ImageIO.read(in);
g2D.drawImage(image, 0, 0, GiaoDienChinh.this);
g2D.setPaint(Color.BLACK);
panelMain.setOpaque(true);
panelMain.paintComponents(g2D);
}
catch ( Exception e ) {
}
finally {
}
aber ich nur zeichnen mit byteArray-Funktion "extractBytes" nicht mit "extractBytes2" !!!
Jemand kann mir erklären, wie ich die zeichnen können Bild mit byteArray, die von "extractByte2"?
Dank für alle Unterstützung!
Ich verstehe eigentlich nicht, das problem: ist die Methode
extractBytes2
nicht funktioniert bzw. nicht aufgerufen wird oder nicht byteArray
immer hält das Ergebnis extractBytes
wenn Sie das Bild zu zeichnen?InformationsquelleAutor dleviathan | 2012-11-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beginnen wir mit dem Lack-code.
ImageIO.read(in)
erwartet eine gültige Bild-format, dass eine steckbare service bietet weiß, wie zu Lesen und zu konvertieren, um eineBufferedImage
.Wenn Sie an den Abschied von
extractBytes
, du bist einfach vorbei zurück ein array von bytes, die für die eigentliche Bild-Datei. Ich würde auch sagenImage.read(new File("image/pikachu.png"))
Jedoch, den Daten-Puffer der Rückkehr von Ihrem
extractBytes2
ist wieder eine interne Repräsentation der Bilddaten, die nicht "lesbar" vonImageIO
.AKTUALISIERT
Aus verwiesen hier
AKTUALISIERT
"Ich hatte diese verrückte Idee, auf dem Weg nach Hause, wie zu konvertieren
BufferedImage
ein byte-array...Die grundlegende Idee ist die Verwendung
ImageIO.write
zu schreiben, dieBufferedImage
zu einemByteOutputStream
...Hier mein test...
extractBytes2
zu ziehen Bild?Lustig Sie sollten Fragen, überprüfen Sie das update
InformationsquelleAutor MadProgrammer