2012-04-04 157 views
1

我嘗試着色給定位圖區域。在屏幕上顯示之後。 目前我使用以下方法: 有代表位圖CGContextRef和二維位數組 - 通過它我們知道哪個像素着色。然後一個循環拋出這個數組並繪製一個橢圓:IoS Cocoa給定顏色填充區域

for(int i = 0; i < width; i++){ 
    for(int j = 0; j < height; j++){ 
     if(colormask[i][j] == 1){ 
      CGRect circleRect = CGRectMake(i, j, 1, 1); 
      CGContextSetRGBFillColor(bitmap, red, green, blue, 1.0); 
      CGContextFillEllipseInRect(bitmap, circleRect); 
     } 
    } 
} 

這樣可以解決問題,但工作速度太慢。請提供任何其他想法。也許有解決方案使用Quartz?

+0

我可以知道你想要哪種圖像的顏色。只是在這裏標記一個簡單的圖像,並告訴你想要哪個部分的顏色..以便我們可以幫助你.. – Aravindhan 2012-04-04 16:41:15

+0

這是任何黑白圖像,例如在孩子們的着色書。然後我想爲它的某個域着色。 – Robert 2012-04-04 16:50:13

回答

1

您可以使用Flood fill Algorithm爲圖像着色,它將非常快速和高效。 Objective-c版本的洪水填充算法是Here

+0

是的,我已經實現了這個算法。通過我建立您的鏈接好主意如何顏色域 - 我只需要設置像這樣的位圖數據的適當字節: '代碼' int byteIndex =(bytesPerRow * y)+ x * bytesPerRow/width; rawData [byteIndex] = red; rawData [byteIndex + 1] = blue; rawData [byteIndex + 2] = green; '代碼' 這個工程真的很快!所以我的問題解決了。謝謝。 :) – Robert 2012-04-04 17:19:36

+0

歡迎.............. :) – Aravindhan 2012-04-04 17:33:39

+2

我可以在任何地方找到其實施的基本示例嗎?或一步一步的過程將其納入您的項目? – 2013-01-01 05:48:07