【问题标题】:Creating a tinted UIImage from given UIImage从给定的 UIImage 创建一个着色的 UIImage
【发布时间】:2016-02-16 18:43:24
【问题描述】:

我有一张图片,想创建一个黑色的图片,如下所示:

我有一个视图和一个图像视图,因为它是子视图。图像视图的 alpha 为 0.5,其色调颜色为黑色。视图的背景颜色也设置为黑色。使用这个生成第二个屏幕截图,我想要一个与新 UIImage 类似的输出。

PS:我需要一个可以独立于背景视图等存储或重复使用的新图像。

我也尝试过在报告重复之前进行以下检查:

How would I tint an image programatically on the iPhone?

Overlaying a UIImage with a color?

Making a UIImageView grey

iPhone: How to Dynamically Color a UIImage

我也尝试过从视图中获取图像,但这无济于事,因为我在视图中没有显示更多组件。

【问题讨论】:

  • 您尝试过的其他解决方案有哪些不适用的地方?
  • 第一个没有给出新的图像,只是使用 UIIimageView 的 drawRect 方法来显示与着色相同的图像。在后者中,我得到的大多数图像都完全包括接受的答案。
  • 您是否要为相机图像着色?我问是因为在您的示例图像中,两个相机都是白色的。
  • 没有相机图像在着色图像上方。它不是主图像的一部分。它实际上只是一个在我的应用程序中选择图像的按钮。我忘了从我的示例中删除它。

标签: ios objective-c uiimageview uiimage tint


【解决方案1】:

iPhone - flattening a UIImageView and subviews to image = blank image 可能会帮助您解决问题。这个想法是“在上下文中渲染”具有 2 个子视图(图像和黑色覆盖视图)的 UIView 对象以获取图像。如果图像中有更多不想要的子视图,只需在渲染时隐藏它们即可。

【讨论】:

  • 从视图中获取图像对我来说似乎太天真了。有没有其他有效的解决方案?感谢您的回答,但我的视图有很多对象(标签、按钮等),因此隐藏它们中的每一个并且不隐藏似乎有点不切实际。
  • 同意,这可能不切实际,那么为什么不采用此问题的第二个答案stackoverflow.com/questions/845278/… 中描述的方法呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
  • 2015-12-25
  • 1970-01-01
  • 2019-05-17
相关资源
最近更新 更多