BFILE (oracle 10G)에 TIFF 이미지를 저장했습니다. 나는 그것을 데이터베이스에서 읽고 로컬 디렉토리에 .tiff 이미지를 만들고 싶다. (저는 JAI를 사용하고 있습니다). 다음은 내 코드 ImageIO.read()
이 null을 반환하는 곳입니다.Java에서 JAI를 사용하여 BFILE Oracle에 저장된 TIFF 이미지를 생성하십시오.
OraclePreparedStatement pst =
(OraclePreparedStatement)con.prepareStatement("select chq_tif_img from
mstr where id = 52");
ResultSet rs = pst.executeQuery();
if(rs.next())
{
bfile = ((OracleResultSet)rs).getBFILE ("chq_tif_img ");
bfile.openFile();
System.out.println("BFILE: getDirAlias() = " + bfile.getDirAlias());
System.out.println("BFILE: getName() = " + bfile.getName());
System.out.println("BFILE: fileExists() = " + bfile.fileExists());
System.out.println("BFILE: isFileOpen() = " + bfile.isFileOpen());
System.out.println("BFILE: length = " + bfile.length());
InputStream inputStream = bfile.getBinaryStream();
System.out.println("-->"+inputStream);
BufferedImage bi = ImageIO.read(inputStream);
TIFFEncodeParam params_omg= new TIFFEncodeParam();
FileOutputStream os_omg = new FileOutputStream("anand.tiff");
javax.media.jai.JAI.create("encode", bi, os_omg, "TIFF", params_omg);
inputStream.close();
bfile.closeFile();
}
내가 여기에 검색했지만 나는 데이터베이스에서 TIFF를 읽고 정확한 도움을받을 수 및 이미지 파일을 티파니 만들 수 없습니다. 도와주세요.
파일을 복사 JAI 또는'ImageIO'를 사용하지 마십시오, 그들은 그것에 능숙하지 못합니다. :-)'inputStream'의 내용을 직접 디스크에 복사하십시오. 바이트 단위로 파일을 복사하는 방법은 예를 들어 [이 대답] (http://stackoverflow.com/a/29005856/1428606)을 참조하십시오. – haraldK