簡體   English   中英

如何更改 UIImage 的顏色

[英]How to change color of the UIImage

我正在嘗試更改特定 UIImage 的顏色,但是當我在互聯網上搜索時,我最終得到了更改 UIImage 色調顏色的結果,如果我更改色調顏色,它將與給定顏色重疊整個圖像,這不是什么我需要。 有人可以幫我做到這一點嗎? 這可能看起來像在 Photoshop 或草圖中進行照片編輯。 我在下面附上了我正在尋找的圖片。

給定圖像 .

對於(例如)上面的圖像,我將其作為圖層(UIImageView),如果我更改 OverCoat 圖像的顏色,該顏色將更改為我設置的顏色。

改變顏色后

簡單地改變顏色后,它看起來像上面一樣。

有人可以幫我做到這一點。

實現此目的的一種方法是使用定義圖像的哪些區域應該着色的蒙版圖像:

用蒙版着色的圖像

這可以通過UIGraphicsImageRenderer完成,請參閱使用蒙版着色 UIImage 以獲取示例操場。

import UIKit

let image = UIImage(named: "landscape.jpg")!
let mask = UIImage(named: "mask.png")!

let imageRenderer = UIGraphicsImageRenderer(size: image.size)

let tintedImage = imageRenderer.image { (ctx) in
    let cgContext = ctx.cgContext
    let rect = CGRect(origin: .zero, size: image.size)
    image.draw(in: rect)
    cgContext.saveGState()
    cgContext.translateBy(x: 0, y: rect.size.height)
    cgContext.scaleBy(x: 1.0, y: -1.0);
    cgContext.clip(to: rect, mask: mask.cgImage!)
    cgContext.setBlendMode(.color)
    UIColor.red.setFill()
    cgContext.fill(rect)
    cgContext.restoreGState()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM