设置UIImage颜色

我在用swift 4,我的目标是改变系统的颜色。UIImage 在代码中。我用

    let defaultImage = UIImage(systemName: "person.circle.fill")

但当我改变其色调与。

 let grayDefaultImage = defaultImage?.withTintColor(.gray)

这个… grayDefaultImage 仍然显示标准的蓝色。接下来我使用一个扩展

//MARK: -UIImage extension
extension UIImage {

    /// @Todo: this blurs the image for some reason
    func imageWithColor(color: UIColor) -> UIImage {
        UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
        color.setFill()

        let context = UIGraphicsGetCurrentContext()
        context?.translateBy(x: 0, y: self.size.height)
        context?.scaleBy(x: 1.0, y: -1.0)
        context?.setBlendMode(CGBlendMode.normal)

        let rect = CGRect(origin: .zero, size: CGSize(width: self.size.width, height: self.size.height))
        context?.clip(to: rect, mask: self.cgImage!)
        context?.fill(rect)

        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        return newImage!
    }
}

而且图像呈现的是一种非常 “像素化 “或 “低分辨率 “的形式。

解决方案:

withTintColor(_:) 说。The new image uses the same rendering mode as the original image.

所以如果原始图像的渲染模式是… .alwaysTemplate你需要将模式设置为 .alwaysOriginal:

defaultImage?.withTintColor(.gray, renderingMode: .alwaysOriginal)

给TA打赏
共{{data.count}}人
人已打赏
未分类

在VHDL中,将可变长度的向量赋值给静态大小的向量。

2022-9-10 15:35:18

未分类

使用java创建二维数组列表

2022-9-10 15:35:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索