1

画像の黒/白部分の割合を計算しようとしています。しかし、私が得た結果は論理的ではありません。見てみましょう:

unsigned char *data = CGBitmapContextGetData(contextMask);
int offset = 0;

if (data == NULL)
{
    return 0.0;
}

float sum = 0.0;

for (int x = 0; x < CGImageGetWidth(scratchImage); x++)
{
    for (int y = 0; y < CGImageGetHeight(scratchImage); y++)
    {
        NSLog(@"Offset %d,%d: %hhu", x, y, data[offset+1]);
        if (data[offset+1] == 0)
        {
           sum = sum + 1;
        }

        offset += 4;
    }
}

画像は白黒のみで、0 から 255 までの数字が表示されることがあります。どうもありがとう。

CGImageの作成方法は次のとおりです。

CFMutableDataRef pixels = CFDataCreateMutable(NULL, imageWidth * imageHeight);
contextMask = CGBitmapContextCreate(CFDataGetMutableBytePtr(pixels),
         imageWidth, imageHeight, 8, imageWidth, colorspace, kCGImageAlphaNone);

CGDataProviderRef dataProvider = CGDataProviderCreateWithCFData(pixels);

CGContextSetFillColorWithColor(contextMask, [UIColor blackColor].CGColor);
CGContextFillRect(contextMask, self.frame);

CGContextSetStrokeColorWithColor(contextMask, [UIColor whiteColor].CGColor);
CGContextSetLineWidth(contextMask, _sizeBrush);
CGContextSetLineCap(contextMask, kCGLineCapRound);

CGImageRef mask = CGImageMaskCreate(imageWidth, imageHeight, 8, 8, imageWidth,
                                                       dataProvider, nil, NO);
scratchImage = CGImageCreateWithMask(hideImage, mask);
4

0 に答える 0