나는 응용 프로그램에서 사용할 매우 큰 고해상도지도가 있습니다 (이미지 크기는 약 80MB).매우 큰 TIFF 파일 확대/축소
나는 다음 알고 싶다 :
- 는 어떻게하면이 이미지를 가능한 한 최선의 방법을로드 할 수 있습니다? 이미지를로드하는 데 몇 초가 걸릴 것이라고 (나는 괜찮습니다)하지만 진행 상황을 사용자에게 알리고 싶습니다. 결정된 모드를 사용하여 사용자에게
JProgressBar
의 일종으로 표시하고 싶습니다. 이것은로드 된 바이트 수 또는 그와 비슷한 것을 반영해야합니다. 이 기능을 제공 할 수있는 이미지로드 방법이 있습니까 (예 :ImageIO.read()
)? - 지도가 매우 고해상도이므로 사용자가 스크롤하여 확대/축소 할 수 있도록하고 싶습니다. 가장 좋은 방법은 무엇입니까? 나는 표준 크기로
BufferedImage
크기를 재조정하면 큰 파일에 아주 오랜 시간이 걸린다는 사실을 안다. 이 작업을 수행하는 효율적인 방법이 있습니까?
입력 해 주셔서 감사합니다.
종류와 관련,
헥터 반 덴 Boorn
추신 이미지는 JPanel의 캔버스에 그려집니다.
안녕하세요, 귀하의 도움에 감사드립니다. 모든 것이 완벽하게 작동하고 빠르게로드됩니다. 귀하의 전문 지식과 설명이 없으면 나는 여전히 이것을 위해 노력해 왔을 것이므로 현상금을 공정하고 사각으로 받았습니다.
내가 한 것은 다음과 같습니다. imagemagick을 사용하여 다른 해상도의 여러 이미지를 만들었고 실행 시작시 가장 작은 res 만로드합니다. 영상. 나머지는 별도의 스레드에로드되어 실행이 중단되지 않습니다. 내가 제공 한 정보를 사용하여 확대하거나 축소 할 때 적절한 이미지를 사용합니다. 타일을 사용하는 것에 다소 회의적입니다. 왜냐하면지도 위에 직접 이미지를 그려야하고 외부 항아리에서 페인트 기능을 사용할 수 없다는 것을 알았 기 때문에 사용법이 간단 해졌습니다. rescale 모드가 확대/축소 또는 패닝이 빠름으로 설정되어 있고 확대/축소 또는 패닝하지 않을 때 rescale은 픽셀 완전 이미지의 경우 부드럽게 설정되어 있지만 (제안 된 것처럼) 충분히 빠르며, 타일이 필요합니다. (이보다 더 큰 이미지를 사용하는 경우이 작업이 필요하고 필자가 제공 한 정보를 이해할 수 있습니다.)
다시 감사 그래서 모든 것이 완벽하게 작동됩니다 :)
표시해야 할 사각형을 추적하고 뷰어의 이미지 일부를 선택하는 옵션이 있습니까? 이미지를 패닝 (예 : 왼쪽으로 이미지 이동) 할 때이 기능은 어떻게 작동합니까? –