0

次の質問があります。完全な画像をスキャンして、その色のすべてのピクセルを取得するにはどうすればよいですか。

このライブラリ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 が失敗しました。これは残念です。このメモリを使いたいと思っていました。7 月 24 日 18:31:41 Christians-MacBook-Pro.local Bitmap_Test[2374]: CGBitmapContextGetData: 無効なコンテキスト 0x0 7 月 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(サイズ=2265088) 失敗しました (エラー コード=12)

この計画に対処するための別のアプローチを知っていますか?

ドイツからよろしく、クリス

4

1 に答える 1

0

別のスレッドのコードを見つけたので、それを自分のコードに置き換えました。

スレッドは次のとおりです: UIImage (Cocoa Touch) または CGImage (Core Graphics) からピクセル データを取得する方法は?

于 2012-07-24T18:20:22.887 に答える