Heim >Datenbank >MySQL-Tutorial >Warum ist mein „BufferedImage' null, wenn ich einen Blob aus einer Datenbank konvertiere?
BufferedInputStream in ein Bild konvertieren
Beim Konvertieren eines Blobs aus einer Datenbank, von dem Sie annehmen, dass es sich um ein Bild im JPEG-Format handelt, tritt ein Problem auf , in ein BufferedImage zur weiteren Verarbeitung. Die Konvertierung schlägt fehl und Ihre Bildvariable bleibt null.
Mögliche Gründe für einen Konvertierungsfehler
Bei der Untersuchung Ihres Codes können mehrere potenzielle Probleme dazu führen, dass die Konvertierung fehlschlägt:
Lösung
Um die Probleme zu beheben Versuchen Sie, Ihren Code wie folgt zu ändern:
public Response post(@PathParam("id") String id) throws IOException { Connection con = connection(); Blob blob = getPhoto(con); BufferedImage image = null; InputStream blobStream = null; int blobLength = 0; try { blobLength = (int) blob.length(); blobStream = blob.getBinaryStream(1, blobLength); image = ImageIO.read(blobStream); } catch (SQLException e2) { e2.printStackTrace(); } return Response.ok(image).build(); }
Zusätzlich sollten Sie die Gültigkeit des uploadedInputStream überprüfen indem Sie es in eine Datei schreiben und wieder einlesen, um sicherzustellen, dass es ein Bild enthält.
Das obige ist der detaillierte Inhalt vonWarum ist mein „BufferedImage' null, wenn ich einen Blob aus einer Datenbank konvertiere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!