将 BufferedInputStream 转换为图像
从数据库转换 Blob 时遇到问题,您认为该 Blob 是 JPEG 格式的图像,进入 BufferedImage 进行进一步处理。转换失败,您的 Image 变量仍为空。
转换失败的可能原因
检查您的代码后,有几个潜在问题可能导致转换失败:
解决方案
解决问题,尝试修改您的代码如下:
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(); }
此外,您应该验证有效性通过将 uploadedInputStream 写入文件并将其读回以确保它包含图像。
以上是从数据库转换 Blob 时,为什么我的'BufferedImage”为空?的详细内容。更多信息请关注PHP中文网其他相关文章!