문제:
데이터베이스에서 검색된 BufferedInputStream 개체를 어떻게 변환할 수 있습니까? BufferedImage로? 기존 코드는 null 이미지를 반환합니다.
해결책:
예:
다음 Java 코드는 Blob#getBinaryStream을 사용하여 이미지를 읽습니다. 데이터베이스에서 BufferedImage로 변환합니다:
import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.sql.Blob; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.imageio.ImageIO; public class ImageDatabaseHelper { private Connection con; public BufferedImage loadImage(int imageId) throws IOException, SQLException { PreparedStatement stmt = null; ResultSet rs = null; BufferedImage image = null; try { stmt = con.prepareStatement("select image from images where id = ?"); stmt.setInt(1, imageId); rs = stmt.executeQuery(); while (rs.next()) { Blob blob = rs.getBlob(1); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (ByteArrayInputStream bais = new ByteArrayInputStream(blob.getBinaryStream())) { ImageIO.read(bais).writeTo(baos); } image = ImageIO.read(new ByteArrayInputStream(baos.toByteArray())); } } finally { try { rs.close(); } catch (Exception e) { } try { stmt.close(); } catch (Exception e) { } } return image; } }
위 내용은 BufferedInputStream을 데이터베이스에서 BufferedImage로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!