Ios 在UIView上创建遮罩,以黑白显示所有UIImageView子视图
我有一个UIView,其中包含UIImagesView,其中包含从远程服务器加载的图像 从服务器加载的图像是彩色的 我想在我的UIView上创建一个遮罩,将其所有内容(包括图像)以黑白显示 但我不想在每张照片准备好的时候都戴上面具 我试图创建Ios 在UIView上创建遮罩,以黑白显示所有UIImageView子视图,ios,objective-c,uiview,uiimageview,mask,Ios,Objective C,Uiview,Uiimageview,Mask,我有一个UIView,其中包含UIImagesView,其中包含从远程服务器加载的图像 从服务器加载的图像是彩色的 我想在我的UIView上创建一个遮罩,将其所有内容(包括图像)以黑白显示 但我不想在每张照片准备好的时候都戴上面具 我试图创建UIView的子类: @interface FriezeView : UIView @property (nonatomic, strong) UIView *mask; @property (nonatomic, strong) UIView *cont
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
ui视图为容器
ui视图着色
[_frieze.container addSubview:myImageView];
_frieze.mask.layer.backgroundColor = [[UIColor grayColor] CGColor];
_frieze.mask.backgroundColor = [UIColor grayColor];
但它不起作用
有什么建议吗 不,您不能创建将图像转换为黑白的遮罩 您可以编写代码,使用核心图像过滤器将图像转换为黑白图像 您可以使用InputTensity值为0 1的“CIColorMonochrome”过滤器,也可以使用“CIPhotoEffectMono”,或者使用inputSaturation值为0的“颜色控制”过滤器 您可以创建UIImageView的“单色图像”子类,将图像作为输入,并将其转换为单色等价物进行显示
我在github上有一个名为(link)的示例项目,它允许您使用所有这些过滤器以及更多。它应该为您提供足够的信息,让您可以开始使用。非常感谢您的回答!