我已经尝试了每个问题的一些代码:
如何使 UIImage 上的一种颜色透明?
如何遮盖 UIImage 以使白色在 iphone 上变得透明?
但没有成功,不幸的是,使用核心图形和图像并不是我的强项。
我将如何访问 UIImage 的原始数据并将白色像素更改为清除?
我将如何访问 UIImage 的原始数据......?
Look at 文档.
您会发现无法获取 UIImage 背后的原始数据。你能得到的最接近的是CGImage。这将让您获得其数据提供者,您可以向其索取原始数据的副本。
该解决方案的问题是您需要处理 CGImage 支持的所有可能的配置(RGBA、ARGB、RGB_、_RGB、RGB、8-bpc、16-bpc 等)。那是a lot工作的。如果您不这样做,那么有一天,您会惊讶地发现某个图像在某种程度上无法与您的代码一起使用,或者操作系统升级改变了 CGImage 的创建方式。
The CGImageCreateWithMaskingColors功能,对您链接到的其他问题之一建议的,是正确的解决方案。
让您困惑的一件事是显示的值该问题已接受的答案通常是假的:它们超出了范围。这Quartz 2D 编程指南至少有更多细节two.places.
我也反对包括这个答案createMask:
方法,因为它并没有按照它所说的那样做,而且几乎没有什么用处(只有当源图像可能是 CMYK 时才值得拥有,但在 iPhone 应用程序上这种可能性有多大?)。跳过它并直接从 UIImage 的 CGImage 创建遮罩图像。
一旦解决了这两个问题,这个答案可能就会很好地发挥作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)