我有一个UIView,其中包含UIImagesViews,其中包含从远程服务器加载的图像。
从服务器加载的图像是彩色的。
我想在我的UIView上创建一个面具,其中包含黑白图像的所有内容。
但我不想在准备好时将面具放在每张照片上。
我尝试创建UIView
的子类:
@interface FriezeView : UIView
@property (nonatomic, strong) UIView *mask;
@property (nonatomic, strong) UIView *container;
@end
此类的init方法:
- (id)initWithFrame:(CGRect)frame
{
if ((self = [super initWithFrame:frame]))
{
self.container = [[UIView alloc] initWithFrame:frame];
self.mask = [[UIView alloc] initWithFrame:frame];
[self addSubview:self.container];
[self addSubview:self.mask];
}
return self;
}
然后我使用mask
UIView为container
UIView着色。
[_frieze.container addSubview:myImageView];
_frieze.mask.layer.backgroundColor = [[UIColor grayColor] CGColor];
_frieze.mask.backgroundColor = [UIColor grayColor];
但它没有用。
有什么建议吗?
答案 0 :(得分:2)
不,你不能创建一个将图像转换为B& W的掩码。
您可以做的是编写使用核心图像过滤器将图像转换为B& W的代码。
您可以使用" CIColorMonochrome"使用inputIntensity值0 1进行过滤,您可以使用" CIPhotoEffectMono",或者您可以使用"颜色控制"使用inputSaturation值为0进行过滤。
你可以创造一个" MonochromeImage" UIImageView的子类,它将图像作为输入并将其转换为单色等效项以进行显示。
我在github上有一个名为CIFilterTest(链接)的示例项目,它允许您使用所有这些过滤器等。它应该为您提供足够的信息以便开始。