2010-08-04 4 views
1

사용자 지정 히트 맵 생성기를 작성하는 중입니다. 가장 빠른 방법은 Java에서 상자 (약 1 백만 개)를 그리는 것입니다. 내가 찾은 대부분의 질문은 (게임에서와 같이) 역동적 인 이미지에 집중되어 있으며 정적 이미지로 갈 수있는 더 좋은 방법이 있는지 궁금합니다. 나는 스윙 (GridLayout을 통해 각 상자에 컬러 캔버스를 추가), Graphics2D를 사용하여 패널에서 직접 그리기, 그리고 프로세싱 라이브러리를 사용하여 시도했다. Processing은 꽤 빠르며 깨끗한 이미지를 생성하지만 창에는 문제가있는 것처럼 보입니다. 당신이 최소화하거나 창을 움직일 때마다 이미지의 다른 부분을 생성합니다.Java에서 정적 이미지를 그리는 가장 빠른 방법

OpenGL에 대해 들어 봤지만 결코 만진 적이 없으며, 그게 (또는 다른 것) 시간을 투자하기 전에 더 나은 접근 방법이 될 것입니다.

+0

대답하기가 어렵습니다. 첫 번째 답변 중 하나에 "벤치 마크"가 포함될 것입니다. 그러나 Graphics2D는 괜찮습니다. 사용할 수있는 Graphics2D 용 OpenGL 파이프 라인이 있습니다. – Tedil

답변

2

정적 이미지의 경우 BufferedImage (BI)에 페인트 한 다음 Graphics2D를 통해 그립니다. BI가 최신 버전인지 여부를 알려주는 부울을 보관합니다. 그렇게하면 나는 값 비싼 회화 비용을 한 번만 부담하게됩니다. 공상을 원할 경우 사소한 크기 조정을 처리하도록 BI를 확장 할 수 있습니다. 주요 크기 조정의 경우 인공물을 도입하지 않도록 BI를 다시 칠하고 싶을 것입니다. 또한 BI와 데이터 만 페인팅 할 때 데이터 (예 : 십자형, 커서 아래 값 등)를 오버레이하는 데 유용합니다.

+0

나는 크기를 바꾸는 것에 관심이 없다. 그리고 그 모든 것을, 단지 나의 시간을 줄이기 위해서, R만큼 빨랐다. (25 초 정도에 약 650 만 포인트를 할 수있다.) 이것은 꽤 좋았습니다 - 내가 원하는만큼 빠르지는 않았지만, 내가 한 일보다 확실히 빠릅니다. :) –

관련 문제