如何解决为什么遮罩的图像像素RGB值在IOS图像遮罩中显示原始图像RGB值?
我正在研究具有分割技术的图像处理移动应用程序。我尝试获取蒙版图像并成功。但是,当我要将遮罩的图像保存到我的相册时,即使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
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。