我正在研究具有分割技术的图像处理移动应用程序。我尝试获取蒙版图像并成功。但是,当我要将遮罩的图像保存到我的相册时,即使UIImage视图显示了遮罩的图像,也会保存原始图像。另外,我想更改遮罩区域的白色背景像素颜色,并意识到遮罩像素的原始图像RGB值仍然受到保护。以下是掩盖图像和读取的RGB值的代码。遮罩图像中的遮罩区域像素为255(平均1),非遮罩区域为0。请查看我得到的图像。但是RGB颜色和保存的图像不是蒙版图像,而是原始图像(图像)。我怎么弄错了?为什么在蒙版图像中仍会读取原始图像的RGB颜色,而UIview似乎正确(白色背景)的任何解释
func maskImage(image:UIImage, mask:UIImage)->UIImage{
let imageReference = image.cgImage
let maskReference = mask.cgImage
let imageMask = CGImage(maskWidth: maskReference!.width,
height: maskReference!.height,
bitsPerComponent: maskReference!.bitsPerComponent,
bitsPerPixel: maskReference!.bitsPerPixel,
bytesPerRow: maskReference!.bytesPerRow,
provider: maskReference!.dataProvider!, decode: nil, shouldInterpolate: true)
let maskedReference = imageReference!.masking(imageMask!)
let maskedImage = UIImage(cgImage:maskedReference!)
print(mask.getPixelColor(x: 0, y: 0)!)
print(image.getPixelColor(x: 0, y: 0)!)
print(maskedImage.getPixelColor(x: 0, y: 0)!)
return maskedImage
}
第一个像素(左上)的打印值按顺序排列: UIExtendedSRGBColorSpace 1 1 1 1(遮罩)白色如预期 UIExtendedSRGBColorSpace 0.0313725 0.0313725 0.0313725 1(图像)几乎为黑色 UIExtendedSRGBColorSpace 0.0313725 0.0313725 0.0313725 1(蒙版图像)假设为1 1 1 1
答案 0 :(得分:0)