2011-08-18 52 views
0

我會先告訴你這個問題,然後我會告訴你我的解決方案。'有效'創造'圖像

問題:我有一個大約900x900像素的空白PNG圖像。我想複製尺寸爲30x30像素的圓圈,這些圓圈基本上是具有不同顏色的圓形。有8個不同的圓圈,根據我在別處創建的數據值放置在圖像上。

解決方案:我使用ImageMagick的,它的假設是良好的通用圖像編輯等我創建了一個空白圖像

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

我上傳的所有其他小30×30像素的圖像與「讀」功能。
我上傳數據並提取數據。
我使用複合命令將小圓圈圖像置於空白圖像上。

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++而不是 「合成」 他們的社交圈嗎?我無法相信這是如此緩慢。