我有一个白线图像。我需要将图像中的所有白色颜色更改为透明。我在obj-c中找到了解决方案,但它不起作用。 图像中也有黄色和红色。
我的代码:
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!
但我没有看到任何东西 - 图像很清楚(可能)。
我做错了什么,拜托?谢谢
答案 0 :(得分:1)
固定
在创建rawImageReg之前添加代码:
image = UIImage(data: UIImageJPEGRepresentation(image, 1.0)!)!
谢谢
答案 1 :(得分:0)
UIKit和Cocoa中的颜色都指定为0..1的浮点数,而不是0..255的整数,以下内容应该可以解决您的问题:
let colorMasking : [CGFloat] = [222.0/255.0, 255.0/255.0, ...]