我正在其中一个iOS应用中创建一个位图,我在屏幕上绘制内容并使用以下代码捕获上下文:
CGImageRef imageRef = image.CGImage;
NSUInteger width = CGImageGetWidth(imageRef);
NSUInteger height = CGImageGetHeight(imageRef);
NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel * width;
NSUInteger bitsPerComponent = 8;
unsigned char *rawData = (unsigned char*) calloc(height * width * bytesPerPixel, sizeof(unsigned char));
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(rawData, width, height,
bitsPerComponent, bytesPerRow, colorSpace,
kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
CGColorSpaceRelease(colorSpace);
CGContextRelease(context);
此数据我稍后用于检查像素是否为黑色。我面临的问题是当我绘制一些东西及其黑色(RGB值0,0,0)时,在视网膜显示中正确检测到该像素的RGB值,但在非视网膜中它没有给出正确的值。它确实非视网膜给我0,0,0。有人知道吗?
答案 0 :(得分:0)
检查UIImage的大小。非视网膜显示可能有所不同,因此如果设备上没有视网膜显示,您可以检查另一个像素的颜色。