Rumah > Artikel > pangkalan data > Mengapakah `BufferedImage` saya batal apabila menukar Blob daripada pangkalan data?
Tukar BufferedInputStream kepada Imej
Anda menghadapi masalah menukar gumpalan daripada pangkalan data, yang anda anggap sebagai imej dalam format JPEG , ke dalam BufferedImage untuk pemprosesan selanjutnya. Penukaran gagal dan pembolehubah Imej anda kekal batal.
Sebab Kemungkinan Kegagalan Penukaran
Setelah memeriksa kod anda, beberapa masalah yang berpotensi boleh menyebabkan penukaran gagal:
Penyelesaian
Untuk menyelesaikan isu , cuba ubah suai kod anda seperti berikut:
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(); }
Selain itu, anda harus mengesahkan kesahihan InputStream yang dimuat naik dengan menulisnya pada fail dan membacanya semula untuk memastikan ia mengandungi imej.
Atas ialah kandungan terperinci Mengapakah `BufferedImage` saya batal apabila menukar Blob daripada pangkalan data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!