gpt4 book ai didi

ios - 用 UIColor 填充 UIImage

转载 作者:搜寻专家 更新时间:2023-11-01 06:05:06 25 4
gpt4 key购买 nike

我有一个 UIImage 我想用 UIColor 填充

我试过这段代码,但应用程序在第 10 行崩溃。

代码如下:

extension  UIImage {
func imageWithColor(_ color: UIColor) -> UIImage {
UIGraphicsBeginImageContextWithOptions(size, false, scale)
let context = UIGraphicsGetCurrentContext()
context?.translateBy(x: 0.0, y: size.height)
context?.scaleBy(x: 1.0, y: -1.0)
context?.setBlendMode(CGBlendMode.normal)
let rect = CGRect(origin: CGPoint.zero, size: size)
context?.clip(to: rect, mask: context as! CGImage)// crashes
color.setFill()
context?.fill(rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
return newImage!
}
}

问题可能出在 context?.clip(to: rect, mask: context as! CGImage) (我想我不应该发送 context 作为掩码, 但我应该发送什么? CGImage()CGImage.self 都不起作用。

最佳答案

你必须做如下:

extension UIImage {
func tinted(with color: UIColor) -> UIImage? {
defer { UIGraphicsEndImageContext() }
UIGraphicsBeginImageContextWithOptions(size, false, scale)
color.set()
withRenderingMode(.alwaysTemplate).draw(in: CGRect(origin: .zero, size: size))
return UIGraphicsGetImageFromCurrentImageContext()
}
}

关于ios - 用 UIColor 填充 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39652778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com