当前位置: 首页 > 知识库问答 >
问题:

如何更改图像颜色

金和雅
2023-03-14

我从服务器接收图像,然后根据用户选择的颜色,图像颜色将发生变化。

我尝试了以下方法:

_sketchImageView.image = [_sketchImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[_sketchImageView setTintColor:color];

我得到了与我的目标相反的结果(UIImage外部的白色是用所选颜色着色的)。

出了什么问题?

在这个问题上我也需要这样做,提供的解决方案不能解决我的问题。如何更改iOS和WatchKit中的图像颜色

共有3个答案

曾承弼
2023-03-14

在swift 2.0中,您可以使用

let image = UIImage(named:"your image name")?.imageWithRenderingMode(.AlwaysTemplate)
let yourimageView.tintColor = UIColor.redColor()
yourimageView.image = image

在Swift 3.0中你可以使用这个

let image = UIImage(named:"your image name")?.withRenderingMode(.alwaysTemplate)
let yourimageView.tintColor = UIColor.red
yourimageView.image = image
严昀
2023-03-14

在Swift中,您可以使用以下扩展:[基于@VietHung的objective-c解决方案]

雨燕5:

extension UIImage {
      func imageWithColor(color: UIColor) -> UIImage? {
        var image = withRenderingMode(.alwaysTemplate)
        UIGraphicsBeginImageContextWithOptions(size, false, scale)
        color.set()
        image.draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
        image = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        return image
    }
}

以前的Swift版本:

extension UIImage {
    func imageWithColor(color: UIColor) -> UIImage? {
        var image = imageWithRenderingMode(.AlwaysTemplate)
        UIGraphicsBeginImageContextWithOptions(size, false, scale)
        color.set()
        image.drawInRect(CGRect(x: 0, y: 0, width: size.width, height: size.height))
        image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    }
}
姜聪
2023-03-14

试着为自己塑造新形象

UIImage *newImage = [_sketchImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
UIGraphicsBeginImageContextWithOptions(image.size, NO, newImage.scale);
[yourTintColor set];
[newImage drawInRect:CGRectMake(0, 0, image.size.width, newImage.size.height)];
newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

_sketchImageView.image = newImage;

并使用它。

祝你好运

=======更新=======

此解决方案只会更改所有像素图像的颜色。

示例:我们有一个书的图像:http://pngimg.com/upload/book_PNG2113.png

运行上述代码后(exp:TintColor为红色)。我们有:

SO:你的形象如何取决于你如何设计它

 类似资料:
  • 本文向大家介绍iOS 更改图像的颜色,包括了iOS 更改图像的颜色的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 这个问题很基本,但是我想确定没有比我现在做的更好的方法了。假设我有一个脸书图标。到目前为止,当用户悬停在该图像上时,我会显示不同的图像以更改颜色。有没有一种替代的CSS方法来做到这一点,所以我不使用多个图像? 在下面的小提琴中,我试图改变背景,但这只覆盖了整个图像。 JSFIDLE

  • 我对Android很陌生,正在做我自己的迷你项目,我想改变一个特定像素的颜色。在寻找如何做到这一点时,我在几年前遇到了这个问题。我尝试了myBitmap。setPixel(10,10,Color.rgb(45,127,0)) ,但当我在手机上激活它时,我激活这行代码的那一刻它就崩溃了。每当我与位图交互时,它似乎就会崩溃<代码>int x=myBitmap。getHeight() 这一行也会使应用程

  • 问题内容: 这是我想出的一小段代码的自我问答。 当前,没有一种简单的方法可以嵌入SVG图像,然后可以通过CSS访问SVG元素。有多种使用JS SVG框架的方法,但是如果您要做的只是制作带有过渡状态的简单图标,它们将过于复杂。 所以这就是我想出的,我认为这是迄今为止在网站上使用SVG文件的最简单方法。它的概念来自早期的文本到图像替换方法,但据我所知,从未对SVG进行过处理。 这是问题: 如何在不使用

  • 对于给定的多色PNG(带透明度),最好的/快速的惯用方式是什么: 创建一个重复的 关于SO有几个相关的问题,但是我还没有找到有效的方法。

  • 问题内容: 我正在尝试使用javascript更改svg图像颜色。这可能吗?我可以将其加载为对象,然后以某种方式访问​​颜色/图像数据。 每一个回应或提示都将受到高度赞赏! 问题答案: 当然,这是一个示例(省略了标准HTML样板):