전체적으로 메모리에로드 할 수없는 두 개의 거대한 이미지가 있습니다. 나는 이미지가 타일 것을 알고 클래스 ImageReader
의 모든 방법은Java 고급 이미징 : 거대한 이미지에서 ImageLayout을 얻는 방법?
getTileGridXOffset(int)
나에게 getTileGridYOffset(int)
, getTileWidth(int)
및 getTileHeight(int)
을 그럴듯하게 비 제로 반환 값을 제공합니다.
내 문제는 이제 ImageReader.readtTile(int, int, int)
메서드를 사용하여 전체 이미지를 메모리에로드하지 않아도되도록 하나의 타일 만 읽으려고한다는 것입니다. 그러나 타일 좌표의 유효한 값이 무엇인지 어떻게 결정합니까?
인터페이스 RenderedImage
하지만 out of memory/java heap space
오류로 소스 결과로부터 렌더링 된 이미지를 생성하기위한 모든 시도에있어서 getNumXTiles()
및 getNumYTiles()
있다.
타일 좌표는 이론적으로는 무엇이든지 될 수 있으며 테스트 한 몇 가지 이미지에서도 작동하는 readtTile(0, -1, -1)
을 시도했습니다.
이미지의 메타 데이터에 도달하려고했지만 이미지 레이아웃과 관련하여 유용한 정보를 찾지 못했습니다.
메모리에 전체 이미지를 읽지 않고도 타일 좌표 값을 가져 오는 방법을 알려주는 사람이 있습니까? ImageLayout
의 인스턴스를 필요로하지 않는 또 다른 방법이 있습니까?
도움을 주셔서 감사합니다.