将颜色从白色变为透明 - UIImage

时间:2016-01-27 18:02:33

标签: ios swift uiimage

我有一个白线图像。我需要将图像中的所有白色颜色更改为透明。我在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!

但我没有看到任何东西 - 图像很清楚(可能)。

我做错了什么,拜托?谢谢

2 个答案:

答案 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, ...]