2011-08-18 2 views
0

먼저 문제를 이야기 한 다음 해결책을 알려 드리겠습니다.'이미지를 효과적으로 생성'

문제점 : 흰색 흰색 PNG 이미지가 약 900x900 픽셀입니다. 크기가 30x30 픽셀 인 서클을 복사하고 싶습니다.이 서클은 본질적으로 다른 색상의 원입니다. 8 개의 다른 원이 있으며 다른 곳에서 만든 데이터 값에 따라 이미지에 배치됩니다.

솔루션 : 내가 사용한 적이있는 Imagemagick, 내가 '읽기'기능과 모든 다른 작은 30x30 픽셀 이미지를 업로드 빈 이미지

Image.outimage("900x900","white"); 

을 만들어 편집 범용 이미지 등 좋은 것으로 생각합니다.
데이터를 업로드하고 값을 추출합니다.
composite 명령을 사용하여 작은 '원'이미지를 빈 이미지에 놓습니다.

outimage.composite("some file.png",pixelx,pixely,InCompositeOp); 

이 모든 것이 제대로 작동하고 이미지가 원하는 방식으로 표시됩니다.

그러나 고통스럽게 천천히. 하나의 이미지를 만드는 데 20 초가 걸리고, 그 중 1000 개가 있습니다. 분명히 이것을하는 더 좋은 방법이 있어야합니다. 저는 다른 연구자들이 이미지를 더 복잡하고 빠르게 시뮬레이션하는 것을 보았습니다. 내가 잘못된 접근법을 취한 것은 가능합니다. 어쩌면 나는 그 (것)들 또는 무언가를 "붙여 넣기"대신에 "그리기"원이어야했다. 나는 꽤 당황 스럽다. 모든 입력을 부탁드립니다.

+0

카이로 라이브러리를 사용해보십시오. – Dani

답변

0

비트 맵에서 원을 그릴 수 있고 비트 맵을 png로 저장할 수있는 라이브러리가 필요하다고 생각합니다.

예를 들어 내 Graphin 라이브러리 : http://code.google.com/p/graphin/ 또는 일부. Graphin을 사용하면 다른 경우에도 하나의 PNG를 그릴 수 있습니다.

0

사용중인 플랫폼 ("C++"만)에 대한 정보를 제공하지 않았으므로 플랫폼 독립적 솔루션을 찾고있는 경우 CImg 라이브러리를 사용해 볼 가치가 있습니다. 그런데

http://cimg.sourceforge.net/

, 당신은 ImageMagick를 C++ API Magick++ 대신 그들을 "구성"을 이용하여 원을 그리는 시도 했습니까? 나는 그게 천천히다는 것을 믿을 수 없다.

관련 문제