Wie konvertiere ich BufferedInputStream in ein Bild?
Ursprüngliche Frage:
Ich habe Schwierigkeiten, einen Blob in ein Bild umzuwandeln ein gepuffertes Bild. Ich rufe ein JPG-Bild als Blob aus meiner Datenbank ab, aber die Konvertierung in ein Bild mithilfe von BufferedImage gibt Null zurück. Wie kann ich dieses Problem beheben?
Lösung:
- Überprüfen Sie, ob der hochgeladeneInputStream ein gültiges Bild enthält, indem Sie es mit ImageIO.write ausschreiben.
- Stellen Sie sicher, dass Blob#length einen mit Blob#getBytes kompatiblen Wert zurückgibt. In diesem Fall gibt Blob#length einen Long-Wert zurück, während Blob#getBytes einen Int-Wert erwartet, was zu einer Kürzung führen kann.
- Erwägen Sie die Verwendung von getBinaryStream anstelle von getBytes, um den Blob-Inhalt abzurufen, da getBinaryStream besser für Blobs geeignet ist die nicht im Speicher gespeichert sind.
Zusätzlich Überlegungen:
- Der bereitgestellte Code behandelt die potenzielle Ausnahme, die von ImageIO.read ausgelöst wird, nicht. Stellen Sie sicher, dass die Ausnahme ordnungsgemäß behandelt oder an den Aufrufer weitergegeben wird.
- Für weitere Debugging-Vorgänge geben Sie weitere Informationen zu den Eingabedaten an, z. B. deren Größe und Format.
- Lesen Sie die Dokumentation von Datenbankbibliothek, die Sie verwenden, um Blobs korrekt abzurufen und zu verarbeiten.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen Blob in ein BufferedImage in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!