gpt4 book ai didi

iphone - 如何获取 UIView 中像素的颜色?

转载 作者:行者123 更新时间:2023-12-03 18:14:50 26 4
gpt4 key购买 nike

我正在尝试开发一个小型应用程序。在其中,我需要检测 UIView 中像素的颜色。我有一个 CGPoint 定义我需要的像素。 UIView 的颜色是使用 CoreAnimation 更改的。

我知道有一些复杂的方法可以从 UIImage 中提取颜色信息。但是我找不到 UIViews 的解决方案。

在伪代码中我正在寻找类似的东西

pixel = [view getPixelAtPoint:myPoint];
UIColor *mycolor = [pixel getColor];

非常感谢任何意见。

最佳答案

这是更有效的解决方案:

// UIView+ColorOfPoint.h
@interface UIView (ColorOfPoint)
- (UIColor *) colorOfPoint:(CGPoint)point;
@end

// UIView+ColorOfPoint.m
#import "UIView+ColorOfPoint.h"
#import <QuartzCore/QuartzCore.h>

@implementation UIView (ColorOfPoint)

- (UIColor *) colorOfPoint:(CGPoint)point
{
unsigned char pixel[4] = {0};

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

CGContextRef context = CGBitmapContextCreate(pixel, 1, 1, 8, 4, colorSpace, kCGBitmapAlphaInfoMask & kCGImageAlphaPremultipliedLast);

CGContextTranslateCTM(context, -point.x, -point.y);

[self.layer renderInContext:context];

CGContextRelease(context);
CGColorSpaceRelease(colorSpace);

//NSLog(@"pixel: %d %d %d %d", pixel[0], pixel[1], pixel[2], pixel[3]);

UIColor *color = [UIColor colorWithRed:pixel[0]/255.0 green:pixel[1]/255.0 blue:pixel[2]/255.0 alpha:pixel[3]/255.0];

return color;
}

@end

文件链接:https://github.com/ivanzoid/ikit/tree/master/UIView+ColorOfPoint

关于iphone - 如何获取 UIView 中像素的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1160229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com