2010-07-19 8 views
2

Java에서 일부 이미지를 동적으로 만들고 파일에 저장하려고합니다. 다양한 자습서를 읽었으므로 BufferedImage를 사용해야합니다.Java2D 및 이미지 생성

그러나 BufferedImage 생성자는 매개 변수로 높이와 너비가 필요합니다. 그러나 나는 내 이미지의 최종 크기를 모른다. 미리 알 수없는 크기의 이미지는 어떻게 작성해야합니까?

두 개의 분명한 전략이있다 :

  1. 처음에 매우 큰 이미지를 만든 10000x10000을 말한다.
  2. 큰 이미지를 점차적으로 만들고 원래 이미지를 복사합니다. 단점은 무언가를 추가하고 싶을 때마다 경계를 확인해야한다는 것입니다.

이 문제를 어떻게 처리합니까?

답변

2

방금 ​​공간과 시간 문제가 발생했습니다. 나는 매우 큰 이미지 10000x10000을 만드는 첫 번째 전략에 착수 할 것입니다. 간단한 이유는 어떤 비용으로도 피하기를 원하는 매트릭스 사본의 산과 관련된 두 번째 접근 방식이라는 것입니다.

또한 이미지 크기에 대한 지식이 있으면 초기에 1000x1000과 같은 값으로 10000 x 10000의 값을 최적화 할 수 있습니다. 이미지가 이것을 초과하는 것으로 보이는 경우 2000 x 2000처럼 두 배로 늘리고 이전 이미지를 새 것으로 복사 한 다음 이미지가 확장됨에 따라 계속 수행하십시오. java.util.ArrayList

이렇게하면 시간과 공간의 균형을 간접적으로 연결하게됩니다. 그리고 예, 당신은 매번 경계를 계산해야하지만, 그것은 큰 일을 내게 보이지 않습니다. 그것은 O (1) 시간에 수행 될 수 있습니다.

0

물론 우리는 문제의 세부 사항을 알지 못하지만 간단한 접근 방식은 다음과 같을 수 있습니다. 이미지의 모델을 구축하십시오. 어떤 모양이 어디로 가고 얼마나 큰지 알 수 있습니다. 그로부터 전체 이미지의 크기를 계산할 수 있어야합니다.