我像这样初始化了数组
CGImageRef imageRef = CGImageCreateWithImageInRect(image.CGImage, bounds);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
NSUInteger width = CGImageGetWidth(imageRef);
NSUInteger height = CGImageGetHeight(imageRef);
unsigned char *rawData = malloc(height * width * 4);
NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel * width;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(rawData, width, height, bitsPerComponent, bytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
但是,当我尝试通过 NSLog 检查计数时,我总是得到 4(特别是 4/1)。
int count = sizeof(rawData)/sizeof(rawData[0]);
NSLog(@"%d", count);
然而,当我 NSLog 单个元素的值时,它返回非零值。
前任。
CGFloat f1 = rawData[15];
CGFloat f2 = rawData[n]
, 在n
哪里image width*height*4
;
//我没想到这会起作用,因为最后一个元素应该是 n-1
最后,我尝试了
int n = lipBorder.size.width *lipBorder.size.height*4*2; //lipBorder holds the image's dimensions, I tried multiplying by 2 because there are 2 pixels for every CGPoint in retina
CGFloat f = rawData[n];
这将每次为同一图像返回不同的值(例如 0.000、115.000、38.000)。
如何确定计数/值如何存储到数组中?