CGLayer、CALayer和CGContext之间的区别

5
CGLayer、CALayer和CGContext有什么区别?

1
https://dev59.com/gm855IYBdhLWcg3wPBtx - Vivek Sehrawat
https://dev59.com/Fm3Xa4cB1Zd3GeqPk_sF - Vivek Sehrawat
2个回答

4

根据文档所述,来自QuartzCore框架的CALayer是管理基于图像的内容并允许您对该内容执行动画的类。层通常用于为视图提供支持存储,但也可以在没有视图的情况下使用以显示内容。

有关更多信息,请查看https://developer.apple.com/reference/quartzcore/calayer

来自Core Graphics框架的CGLayer是非常有用的离屏绘制对象,可以像位图上下文一样使用。事实上,CGLayer对象比位图上下文更好地表示。使用CGLayer对象可以改善性能,特别是当您需要重复捕获一块绘图时(使用相同的比例因子和方向)。

有关更多信息,请查看https://developer.apple.com/reference/coregraphics/1666309-cglayer

请注意,CGLayer对象与核心动画层(CALayer对象)无关。

来自Core Graphics框架的CGContext是包含绘图参数和所有设备特定信息的图形上下文,这些信息需要呈现页面上的绘画到目标,无论目标是应用程序中的窗口、位图图像、PDF文档还是打印机。

有关更多信息,请查看https://developer.apple.com/reference/coregraphics/1666363-cgcontext


2

CGLayer中的CG代表核心图形,CALayer中的CA代表核心动画。这确实令人困惑。

CGLayer由CoreGraphics.framework提供,其主要用途是绘制各种几何形状的矢量对象,如圆形、矩形、线条等。这提供了高性能的图形支持,使用CPU渲染。

CALayer(由Quartz框架提供)仅用于在“视图”中进行内容动画。这主要基于OpenGL,使用GPU。

CGContext(再次由Quartz框架提供)-此内容直接从文档中复制

图形上下文包含绘图参数和呈现页面上的颜料所需的所有设备特定信息,无论目标是应用程序中的窗口、位图图像、PDF文档还是打印机。您可以使用Quartz图形上下文创建函数或使用Carbon、Cocoa或Printing框架提供的更高级别函数来获取图形上下文。Quartz为各种类型的Quartz图形上下文提供创建函数,包括位图图像和PDF。Cocoa框架提供了获取窗口图形上下文的功能。Printing框架提供了用于获取适用于目标打印机的图形上下文的功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接