1

I have used following code for masking

imgMask = UIImageView(image: image)
imgImage.mask = imgMask

Now, I want to change background color to yellow, like this:

example

How can I achieve this?

nondestructive
  • 134
  • 2
  • 10
Khushbu Desai
  • 1,003
  • 1
  • 10
  • 32

2 Answers2

1
let templateImage = originalImage.imageWithRenderingMode(UIImageRenderingModeAlwaysTemplate)
myImageView.image = templateImage
myImageView.tintColor = UIColor.orangeColor()
Abdelahad Darwish
  • 5,969
  • 1
  • 17
  • 35
  • hey! Thanks for helping but using this code its change image's tint color so that my original image is not appeared. I want to change Background color with my Original image . @Abdelahad – Khushbu Desai Aug 21 '17 at 11:10
1

Heres a small code snippet with background color change

import Foundation
import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var trial: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()
        let mask = UIImage(named: "mask_image")
        let image = UIImage(named: "wallpaper")

        trial.image = self.maskImage(image: image!, withMask: mask!)
        trial.backgroundColor = UIColor.red
    }
    func maskImage(image: UIImage, withMask maskImage: UIImage) -> UIImage {
        let maskRef = maskImage.cgImage
        let mask = CGImage(
            maskWidth: maskRef!.width,
            height: maskRef!.height,
            bitsPerComponent: maskRef!.bitsPerComponent,
            bitsPerPixel: maskRef!.bitsPerPixel,
            bytesPerRow: maskRef!.bytesPerRow,
            provider: maskRef!.dataProvider!,
            decode: nil,
            shouldInterpolate: false)
        let masked = image.cgImage!.masking(mask!)
        let maskedImage = UIImage(cgImage: masked!)
        // No need to release. Core Foundation objects are automatically memory managed
        return maskedImage
    }      
}
harshal jadhav
  • 5,456
  • 2
  • 18
  • 26