我正在 ipad 上尝试一些实验性图像,并且尝试将每个像素的颜色数据存储到一个数组中,以提高读取每个像素颜色数据的性能,
现在我有一个计时器尽可能多地调用我的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)才能完成一张图像,有什么更快/改进的地方吗?
谢谢!
蒂斯
最佳答案
[为清楚起见,从评论中复制] 我根本不了解 Objective C,但在我看来,您的函数迭代了 768 * 1004 个值,因此绘制了那么多矩形。猜测大约 60 帧/秒,这将需要 3 小时 40 分钟。我这里错了吗?
关于objective-c - objective-c : save image pixel RGB values to Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5596051/