2010-08-04 4 views
3

필자는 Java Advanced Imaging의 새로운 제품입니다. 처음 도달 한 장애물은 12 비트 단일 밴드의 그레이 스케일 JPEG 파일을 읽을 수 있다는 것입니다. JAI에서 가능하다는 언급을 보았지만 코드를 작성하지 않아야합니다. 누군가 도움이되는 링크 또는 간단한 코드 스 니펫으로 나를 도울 수 있습니까?JAI : 12 비트 JPEG 파일 읽기

지금까지 this tutorial을 사용해 왔지만이 문제에 도움이되지 않았습니다.

감사합니다.

답변

1

JAI-ImageIO는 Java의 ImageIO API에 자신을 등록하므로 클래스 패스의 jai-imageio jars를 ImageIO.read (file)와 같은 일반적인 ImageIO 메소드를 호출하면 사용할 수 있습니다.

jpeg의 문제는 Java에 IIORegistry의 기본 jpeg 판독기가있는 것일 수 있으며 ImageIO.getImageReadersForFormatName()과 같은 것을 사용하여 수동으로 올바른 Jpeg 판독기를 선택해야 할 수 있습니다.

JAI ImageIO는 보통 순수 Java와 네이티브 바이너리 라이브러리를 사용하는 두 가지 구현이 있기 때문에 * lib-wrapper.dll을 포함시켜야합니다. OS)를 LD_LiBRARY_PATH에 넣거나 프로그램의 작업 디렉토리에 넣으십시오. 네이티브 구현은, 보통, pure-java보다, 모드 형식의 버젼을 지원하고 있습니다.

0

일반적으로 JAI + JAI 이미지 I/O를 사용하여 JPEG 12 비트 회색 음영 이미지를 읽습니다.

이전 답변에 더하여 JPEG 12 비트를 읽으려면 기본 바이너리 라이브러리가 필요하므로 mediaLib 라이브러리가 필요합니다.

는 당신은 이미지에서 "ImageRead를"작업을 필요로 I/O :

byte[] imageBytes = ... 
RenderedOp readImage = JAI.create("ImageRead", new MemoryImageInputStream(imageBytes)); 

WHE는 일반적으로 FTP에서 이미지 파일을 읽을 때문에 byte[]을 가져오고 ImageInputStreambyte[]을 래핑 사용자 정의 MemoryImageInputStream 필요 ImageInputStreamImpl을 하위 클래스 화합니다.