【发布时间】:2012-08-25 00:16:07
【问题描述】:
我想以 RGB 形式获取相机屏幕上指定点的颜色值(不捕获)。
我有以下代码 sn-p,但它给出了视图背景颜色的值,而不是相机屏幕上的图片。
CGPoint point=CGPointMake(100,200);
unsigned char pixel[4] = {0};
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(pixel, 1, 1, 8, 4, colorSpace, kCGImageAlphaPremultipliedLast);
CGContextTranslateCTM(context, -point.x, -point.y);
[self.view.layer renderInContext:context];
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
NSLog(@"pixel: R=%d G=%d B=%d Alpha=%d", pixel[0], pixel[1], pixel[2], pixel[3]);
【问题讨论】:
-
有一个API可以进行全屏捕获,试试吧。可能会起作用,我真的不确定。
-
感谢 David H,我知道那个 API,但我的问题是......我想获取该相机视图上指定点的 RGB 值。
-
不,我明白你的问题。如果您知道相机视图的偏移量以及像素的偏移量,那么您可以计算出窗口(屏幕)中的偏移量。你甚至可以使用 UIView 方法为你做这个转换。如果快照确实抓取了相机视图(我不知道是否如此),那么您想要的像素偏移量就是一个简单的数学运算。