2011-04-08 64 views
2

我想在iPad上的一些實驗imagestuff,我想每一個像素的colordata存儲到一個陣列來提高性能讀取每個像素colordata,目標C:圖像像素的RGB值保存到陣列

現在我有一個調用我的drawRect儘可能的,在我的drawRect功能的計時器我有這樣的:

-(void)drawRect:(CGRect)rect 
{ 
    UIGraphicsBeginImageContext(self.frame.size); 
    [currentImage.image drawInRect:CGRectMake(0, 0, 768, 1004)]; 
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 0.3); 

    r_x = r_x + 1; 

    if (r_x == 768) { 
     r_x = 1; 
     r_y = r_y + 1; 
    } 
    if (r_y == 1004) { 
     NSLog(@"color = %@", mijnArray_kleur); 
    } 
    CGPoint point2_1 = CGPointMake(r_x, r_y); 
    GetColor *mycolor = [GetColor alloc]; 
    UIColor *st = [mycolor getPixelColorAtLocation:point2_1]; 
    [mijnArray_kleur addObject:st]; 
    [mycolor release]; 
    CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(), [st CGColor]); 

    CGContextFillRect(UIGraphicsGetCurrentContext(), CGRectMake(r_x,r_y,1,1)); 
} 

和getPixelColorAtLocation是,這個需要返回像素

的UIDeviceRGBColorSpace值的自定義類我約4小時我們的(是,小時:p)完成一幅圖像,有什麼更快/更好的?

謝謝!

蒂斯

+1

不是說我知道目標C,但是在我看來,像你的函數重複超過768 * 1004的值,從而繪製了許多矩形。猜測約60幀/秒,這將需要3小時40分鐘。我錯了嗎? – Darhuuk 2011-04-08 14:20:26

+0

你是100%正確:) – RecycleRobot 2011-04-08 15:04:21

+0

作出答案,隨時投票和接受;)。 – Darhuuk 2011-04-08 15:26:22

回答

4

[爲清楚起見評論複製]據我所知沒有客觀C,在所有的,但它似乎對我來說,在768點* 1004的值的函數循環,從而吸引許多矩形。猜測約60幀/秒,這將需要3小時40分鐘。我錯了嗎?

+0

是的,你是對的,我添加了一個循環我的函數: for(int k = 0; k <1000; k ++){.....} 現在只需要10分鐘左右, 謝謝 :) – RecycleRobot 2011-04-08 17:04:09