iphone - 扫描完整图像的像素颜色

时间:2012-07-24 17:52:42

标签: iphone ios xcode

我有以下问题:如何扫描完整的图像以获得每个像素的颜色。

我使用此库https://github.com/unixpickle/ANImageBitmapRep

我有这段代码:

- (void)executeImageScanProcessWithImage:(UIImage *)image{


dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 
                                         (unsigned long)NULL), ^(void) {


    NSString *rowString = @"";
    NSMutableArray *array = [[NSMutableArray alloc] init];
    ANImageBitmapRep *imageBitmap;
    UIColor *color;
    // Loop für die Spalten (y)
    for (int y = 0; y < 320; y += 20) {
        rowString = @""; // rowString zurücksetzen

        // Loop für die Reihe (x)
        for (int x = 0; x < image.size.width; x += 20) {

            BMPoint pixelPoint = BMPointMake(x, y);
            imageBitmap = [ANImageBitmapRep imageBitmapRepWithImage:image];
            BMPixel pixel = [imageBitmap getPixelAtPoint:pixelPoint];
            color = UIColorFromBMPixel(pixel);

            if ([color isEqual:[UIColor redColor]]) {
                rowString = [rowString stringByAppendingFormat:@"0"];
            }
            else {
                rowString = [rowString stringByAppendingFormat:@"1"];
            }

            // Wenn der letzte "Run" vollzogen ist, wird die rowString in den Array hinzugefügt
            if ([rowString length] == image.size.width / 20) {
                [array addObject:rowString];
            }
        }

        [array addObject:rowString];
    }

    NSLog(@"content of array = %@",array);


});

}

问题是,当图像太大时,我会收到此错误。

  

Malloc失败了,这太糟糕了。我希望能用这个记忆。七月   24 18:31:41 Christians-MacBook-Pro.local Bitmap_Test [2374]:   CGBitmapContextGetData:无效的上下文0x0 Jul 24 18:31:41   Christians-MacBook-Pro.local Bitmap_Test [2374]:   CGBitmapContextCreateImage:无效的上下文0x0 Jul 24 18:31:41   Christians-MacBook-Pro.local Bitmap_Test [2374]:   CGBitmapContextGetWidth:无效的上下文0x0   Bitmap_Test(2374,0xb0103000)malloc: * mmap(size = 2265088)失败   (错误代码= 12)

你知道另一种处理这个计划的方法吗?

来自德国的问候, 克里斯

1 个答案:

答案 0 :(得分:0)

我找到了另一个线程的代码,我用我的代码替换了它。

以下是主题: How to get pixel data from a UIImage (Cocoa Touch) or CGImage (Core Graphics)?