iOS 来自 UIImage/CGImage 的图层蒙版?
iOS layer mask from UIImage/CGImage?
我有以下图片:
在帧大小完全相同的 UIImageView 上,我想显示除红色填充以外的所有内容。
let mask = CALayer()
mask.contents = clippingImage.CGImage
self.myImageView.layer.mask = mask
我原以为当蒙版时黑色会透出来,但当我设置蒙版时整个视图都被清除了。这里发生了什么?
从图像创建遮罩时,您使用 Alpha 通道,而不是任何 RGB 通道。即使您的蒙版是黑色的,您也需要将其 Alpha 值设置为 0,因为蒙版只关注 Alpha 通道。就 RGBA 而言,任何默认的黑色都是 [0,0,0,255]。如果加载RGB,它当然会将其转换为A = 1的RGBA。
我有以下图片:
在帧大小完全相同的 UIImageView 上,我想显示除红色填充以外的所有内容。
let mask = CALayer()
mask.contents = clippingImage.CGImage
self.myImageView.layer.mask = mask
我原以为当蒙版时黑色会透出来,但当我设置蒙版时整个视图都被清除了。这里发生了什么?
从图像创建遮罩时,您使用 Alpha 通道,而不是任何 RGB 通道。即使您的蒙版是黑色的,您也需要将其 Alpha 值设置为 0,因为蒙版只关注 Alpha 通道。就 RGBA 而言,任何默认的黑色都是 [0,0,0,255]。如果加载RGB,它当然会将其转换为A = 1的RGBA。