【问题标题】:How to change UIImage color in iOS?如何在 iOS 中更改 UIImage 颜色?
【发布时间】:2016-08-11 07:47:47
【问题描述】:

请告诉我是否可以在 iOS 中使用?如果是,请为我提供帮助。 我是 iOS 新手,我正在开发一个应用程序。我想在用户点击颜色按钮时更改图像颜色而不是图像(可能有很多选项可以选择颜色)

谢谢

【问题讨论】:

  • 您可以使用多个不同颜色的图像,这些图像在点击按钮时会发生变化,因为无法更改颜色。
  • 您能否将衬衫的“颜色”部分保存为透明图像,然后单击更改容器的背景颜色?这样可以避免为每件衬衫的每个选项提供单独的图像,并且可以轻松更新色调。

标签: ios objective-c xcode swift uiimageview


【解决方案1】:

你可以这样做,但你的图片必须是 png,

UIImage *img = [UIImage imageNamed:@"ic_email_white_48dp_2x.png"];

self.myImageView.image = [img imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

self.myImageView.tintColor = [UIColor blackColor];

我的图像是白色的,当我设置 tintcolor 时,它变成了黑色。同样你可以设置不同的不同颜色。 UIImageRenderingModeAlwaysTemplate 是此功能的核心。

希望这会有所帮助。 :)

【讨论】:

  • 您无法使用tintColor 管理 OP 的特定示例——因为图像中似乎有他想要保留的颜色。例如,看看衣领和袖子周围的红色亮点。您的解决方案将用给定的颜色填充 all 非透明像素,而不仅仅是 OP 想要的颜色。
  • 这个答案与我之前回答的有什么不同,除了你使用的是 Objective-C 吗?
  • @originaluser2 如果想要像这样也显示一些红色,那么我们需要使用多个图像,但我认为应该也有一些解决方案,比如不同类型的 png(从设计方面保留一些部分透明或一些固定的,如红色)。因为从色轮中选择的颜色数量是无限的,所以如果我们想提供任何颜色支持,那该怎么办?我们在项目中放了多少张图片?所以我认为这也应该有解决方案,我不知道是什么,但我觉得应该有一些解决方案......!
  • @Moonwalkr 是的,我正在使用目标 c。
  • 是的,我明白了。我想知道为什么您将其添加为答案,而实际上它与我的答案相同。
【解决方案2】:

您可以尝试使用基本图像作为模板图像,然后相应地更改色调颜色。对于您拥有的那种用例,这可能看起来不足以满足您的需求,但您可以尝试。这将取决于您的原始基础映像。

设置原图:

if let tshirtimage = UIImage(named: "tshirtbase") {
    imageView.image = tshirtimage.imageWithRenderingMode(.AlwaysTemplate)
}

然后,在每个颜色的按钮代码中,您可以像这样更改颜色:

imageView.tintColor = UIColor.redColor()

【讨论】:

  • 反对者,请发表评论。我成功地使用此方法在运行时根据用户选择更改图像颜色。
  • 我不是反对者,但我怀疑这是因为此解决方案不适用于 OP 的 specific 示例。 tintColor 仅用给定颜色替换不透明像素,但在 OP 的示例中,他似乎想要保留一些颜色(看看领子和袖子周围的红色高光)。
  • OP 根本没有提到他想保留颜色。这只是人们根据他的图像推断出来的(这可能只是他用来说明他的需求的例子)。如果他有一个更通用的 T 恤图像,这种方法可能是最有效的。特别是如果有成千上万种具有多种颜色的产品。
【解决方案3】:

正如@Anton 和@David 所说,更改 UIImage 颜色是不可能的。 唯一的方法是添加不同颜色的单独图像。

【讨论】:

  • 不,不需要添加多个图像。它增加了应用程序的大小。可以使用 png 图像。检查我的答案。 :)
【解决方案4】:

你必须向按钮添加一个动作,向图像视图添加一个出口。 在按钮操作中,您将图像设置为图像视图。 f.e.

action redbutton{
imageview.image = UIImage("greenimage.png")
}

action redbutton{
imageview.image = UIImage("redimage.png")
}

这不是正确的代码。只是给你一个想法。

编辑:说清楚。您无法更改图片的“UIColor”来获得您正在寻找的结果。您需要为您的衬衫使用的每种颜色提供不同的图像,您只需在按钮的操作方法中实现图像的更改。

【讨论】:

    【解决方案5】:

    不,您应该使用不同的图像,并根据选择的颜色按钮切换图像。 使用 Adob​​e Photoshop 或类似工具准备不同的图像,然后将它们上传到 XCode。 然后,当用户选择 buttonColor1 时,您使用 self.imageView.image = [UIImage imageNamed:@"redColor"];比如……

    【讨论】:

    • 不,不需要添加多个图像。它增加了应用程序的大小。可以使用 png 图像。检查我的答案。 :)
    猜你喜欢
    • 2012-09-05
    • 2018-08-20
    • 2012-06-01
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多