ios - 将白色转换为黑色 uiimage

标签 ios uiimage

我有以下 UIImage:

enter image description here

使用 Objective-C,我希望能够将白色反转为黑色,反之亦然。

如有任何帮助,我们将不胜感激。

最佳答案

swift

使用 CIContext 而不是 -UIImage:CIImage(参见 https://stackoverflow.com/a/28386697/218152 ),并基于 @wtznc's response 构建,这是一个独立的 IBDesignable:

@IBDesignable
class InvertImage: UIImageView {

    @IBInspectable var originalImage:UIImage? = nil

    @IBInspectable var invert:Bool = false {
        didSet {
            var inverted = false
            if let originalImage = self.originalImage {
                if(invert) {
                    let image = CIImage(CGImage: originalImage.CGImage!)
                    if let filter = CIFilter(name: "CIColorInvert") {
                        filter.setDefaults()
                        filter.setValue(image, forKey: kCIInputImageKey)
                        
                        let context = CIContext(options: nil)
                        let imageRef = context.createCGImage(filter.outputImage!, fromRect: image.extent)
                        self.image = UIImage(CGImage: imageRef)
                        inverted = true
                    }
                }
            }
            
            if(!inverted) {
                self.image = self.originalImage
            }
        }
    }
}

要使用它,请设置原始图像而不是图像,因为图像将动态关联:

enter image description here

关于ios - 将白色转换为黑色 uiimage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28387689/

相关文章:

ios - 音频单元从麦克风捕捉声音,添加混响,然后发送到扬声器

ios - 拖动单元格时如何在 UITableViewCell 中隐藏阴影

ios - UIImageView 中的反别名 UIImage

ios - 像素化 UIImage 返回具有不同大小的 UIImage

ios - 触摸时如何使图像扩展到全屏?

ios - 使用 ABPeoplePickerNavigationController 的委托(delegate)

ios - iOS 上观察多个同类型 Controller 后,如何一键返回上一个 Controller ?

ios - fatal error : unexpectedly found nil while unwrapping an Optional value while filtering

iphone - UIImage:imageWithContentsOfFile 在 iOS 5.0 中慢了 10 倍

ios - PHFetchResults 日期过滤器没有为时间范围生成正确的结果