如何改变一个UIImage的颜色斯威夫特

我在迅速和我想要生成一个函数,它在一个UIImage和的UIColor,并返回一个UIImage重新着色如何改变一个UIImage的颜色斯威夫特

我不工作一个UIImageView,这些只是我打算用作图标的UIImage。有没有什么好的方法来实现这个?

回答:

您可以使用UIGraphicsBeginImageContextWithOptions开始的图像内容,设置所需的颜色和用图像的方法func draw(in rect: CGRect)提醒你图标图像使用它的渲染模式.alwaysTemplate

extension UIImage { 

func tinted(with color: UIColor) -> UIImage? {

UIGraphicsBeginImageContextWithOptions(size, false, scale)

defer { UIGraphicsEndImageContext() }

color.set()

withRenderingMode(.alwaysTemplate)

.draw(in: CGRect(origin: .zero, size: size))

return UIGraphicsGetImageFromCurrentImageContext()

}

}


游乐场测试

与PDF

let camera = UIImage(data: try! Data(contentsOf: URL(string: "/wp-content/uploads/new2022/20220327voicc/216154459.png")!))! 

let redCmera = camera.tinted(with: .red)


回答:

如果使用PNG图像(我想是因为图标) - 只需使用:

let originalImage = UIImage(named: "iconName") 

let tintedImage = originalImage?.withRenderingMode(.alwaysTemplate)

yourButton.setImage(tintedImage, forState: .normal)

yourButton.tintColor = UIColor.blue //change color of icon

以上是 如何改变一个UIImage的颜色斯威夫特 的全部内容, 来源链接: utcz.com/qa/257163.html

回到顶部