问题描述
|
仪器用户指南的内容如下:
彩色复印图像。在由Core Animation复制的图像上放置青色叠加层。
但这并不能解释为什么复制图像。从一个复制的图像到另一个复制的图像似乎没有明显的模式,尽管它是规则的和可复制的。
这些文档目前甚至都没有提到“ Color Hits Green”和“ Misses Red”,但我认为这可能与
CALayer
的shouldRasterize
属性有关。
有任何想法吗?
解决方法
对于“彩色复印图像”,在Session 419 WWDC 2014中很好地讨论了这一点:
\“如果图像是GPU无法直接使用的颜色格式,它将在CPU中转换。”
例:
想象一下从不受控制的在线来源获取图像。 JPEG支持24位彩色图像(每种颜色8位)。 TIFF格式可以将颜色存储在48位彩色图像中(每种颜色16位)。根据iOS的需求,可能必须转换这些差异。
解决方案是将它们在后台隐蔽为正确的颜色格式,以防止在主线程上执行这些转换时出现性能问题。
对于“颜色达到绿色而错过红色”,OP是正确的,这是要检查您是否正确使用了“ shouldRasterize \”属性。绿色表示很好,您已重新使用从“ shouldRasterize”属性创建的缓存。红色表示不好,您需要写入缓存(导致屏幕外传递),然后绘制。
, 如果图像是由自定义数据提供者支持的,则可以将其复制,或者由于某些其他原因而无法将其映射到其他进程中。