2
我有一个白色的图像。我需要将图像中的所有白色更改为透明。我在obj-c中找到了解决方案,但它不起作用。 在图像中也是黄色和红色。将颜色从白色变为透明 - UIImage
我的代码:
let rawImageRef: CGImageRef = image.CGImage!
let colorMasking: [CGFloat] = [222, 255, 222, 255, 222, 255]
UIGraphicsBeginImageContext(image.size);
let maskedImageRef=CGImageCreateWithMaskingColors(rawImageRef, colorMasking);
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), 0.0, image.size.height);
CGContextScaleCTM(UIGraphicsGetCurrentContext(), 1.0, -1.0);
CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, image.size.width, image.size.height), maskedImageRef);
let result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.controlView.image = result!
但我看不到任何东西 - 图像清晰(可能)。
我在做什么错?谢谢UIKit中和可可
嗯......看文档˚F或'CGImageCreateWithMaskingColors',看起来遮罩颜色必须在与源图像相同的“空间”中指定,因此取决于源图像,您可能需要整数或浮点数。 –
感谢您的回答。我试过你的代码,但结果是一样的。 – ankmara
maskedImageRef是零我不明白 – ankmara