`
wsqwsq000
  • 浏览: 684989 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

CGContextSaveGState与CGContextRestoreGState的作用

 
阅读更多

 

 

CGContextSaveGState与CGContextRestoreGState的作用


使用Quartz时涉及到一个图形上下文,其中图形上下文中包含一个保存过的图形状态堆栈。在Quartz创建图形上下文时,该堆栈是空的。CGContextSaveGState函数的作用是将当前图形状态推入堆栈。之后,您对图形状态所做的修改会影响随后的描画操作,但不影响存储在堆栈中的拷贝。在修改完成后,您可以通过CGContextRestoreGState函数把堆栈顶部的状态弹出,返回到之前的图形状态。这种推入和弹出的方式是回到之前图形状态的快速方法,避免逐个撤消所有的状态修改;这也是将某些状态(比如裁剪路径)恢复到原有设置的唯一方式。

 

 

 

分享到:
评论

相关推荐

    ios上的图片处理与动画代码

    5. 层次与混合模式:理解`CGContextSetBlendMode`和`CGContextSaveGState/CGContextRestoreGState`来控制绘图的透明度和混合效果。 Core Animation是iOS中实现流畅动画的关键技术,它是基于图层(CALayer)的动画...

    ios-图片添加贴纸.zip

    这个过程可能需要使用到CGContextSaveGState和CGContextRestoreGState来保存和恢复绘图状态,以及CGAffineTransformMakeTranslation、CGAffineTransformMakeRotation和CGAffineTransformScale等函数来实现贴纸的平移...

    图形上下文栈Demo

    3. **上下文的堆叠与切换**:在绘图过程中,可以多次调用`CGContextSaveGState`和`CGContextRestoreGState`,形成一个图形上下文的栈。这样可以在多个绘图任务间自由切换,而不会影响其他任务的绘图设置。 4. **...

    Quartz2D使用案例

    图层在Quartz2D中扮演着重要角色,通过`CGContextSaveGState`和`CGContextRestoreGState`可以保存和恢复当前的绘图状态,以便于进行图层操作。变换如旋转、缩放和位移可以通过`CGContextTranslateCTM`、`...

    IOS应用源码之图片倒影效果 .rar

    8. **保存和恢复上下文状态**:在进行复杂的图形操作时,使用`CGContextSaveGState`和`CGContextRestoreGState`可以保存和恢复图形上下文的状态,避免对后续绘制造成影响。 9. **内存管理**:在iOS开发中,需要注意...

    iOS Quartz2D详解 - imlifengfeng1

    5. 最后,为了保持绘图状态的整洁,我们可能需要使用`CGContextSaveGState`和`CGContextRestoreGState`来保存和恢复图形上下文的状态。这两个函数允许我们在不干扰其他绘图操作的情况下进行局部更改。 举个简单的...

    Quartz2D渐变demo

    一旦创建完成,可以使用`CGContextSaveGState`和`CGContextRestoreGState`来保存和恢复绘图上下文的状态,防止渐变影响其他绘图操作。之后,使用`CGContextClipToRect`限定渐变的绘制区域,最后调用相应的绘制函数...

    quartz2D

    `CGPDFDocument`和`CGPDFPage`接口允许读取PDF内容,而`CGContextSaveGState`和`CGContextRestoreGState`配合使用,可以将整个图形状态保存到PDF。 通过以上这些特性,Quartz 2D为开发者提供了丰富的工具,使他们...

    简单的绘图实现

    - 也可以考虑使用`CGContextSaveGState`和`CGContextRestoreGState`来保存和恢复绘图状态,以便在多个操作之间保持一致性。 5. **优化性能**: - 避免在`drawRect:`中进行复杂的计算或频繁调用,因为这会导致重绘...

    drawrect中实现橡皮擦功能(非背景色填充)

    6. **保存与恢复上下文状态**:为了防止对其他绘图操作产生影响,记得在修改`CGContext`状态前保存状态(`CGContextSaveGState`),并在完成橡皮擦操作后恢复状态(`CGContextRestoreGState`)。 7. **处理橡皮擦...

    iOS 中pdf文件的绘制

    CGContextSaveGState(context!) CGContextTranslateCTM(context!, 0, bounds.height) CGContextScaleCTM(context!, 1.0, -1.0) CGContextDrawPDFPage(context!, firstPage!) CGContextRestoreGState(context!) ...

    ios 文字跑马灯效果实现

    一、核心概念与原理 1. Core Graphics:iOS中的Core Graphics框架提供了一组低级别的图形绘制API,可以用来进行2D图形的绘制,包括线条、形状、文本等。在实现跑马灯效果时,我们需要利用这个框架来绘制并动态更新...

    CGContext 小记

    当需要暂时改变这些属性时,可以调用`CGContextSaveGState`保存当前状态,之后再调用`CGContextRestoreGState`恢复之前的状态,这在需要多次重复相同绘制操作但中间又有不同设置时非常有用。 在实际开发中,...

    iOS 5 Programming中文版第十五章

    - **保存和恢复状态**:为了便于管理和复原当前的绘图状态,可以使用`CGContextSaveGState`和`CGContextRestoreGState`方法。 ### 二、动画编程 #### 1. Core Animation框架 - **概述**:Core Animation是iOS中...

    深入理解iPhone屏幕双缓冲技术

    此外,为了确保绘图过程的流畅性,通常还会结合使用`CGContextSaveGState`和`CGContextRestoreGState`函数来保存和恢复绘图状态,以及`CGContextSetRGBFillColor`、`CGContextFillRect`和`CGContextStrokePath`等...

    ios应用源码之图片倒影效果 2018127

    4. 使用渐变层(CAGradientLayer)在倒影与背景之间创建平滑的过渡。渐变层从完全不透明到完全透明,使得倒影在底部逐渐消失。 5. 从位图上下文中获取新的CGImage,这将是包含原始图片和倒影的新图像。 6. 最后,将...

    IOS开发 读取PDF文件

    此外,我们还会使用Core Graphics框架,它与Quartz 2D紧密关联,提供了低级别的图形操作接口。 以下是实现这一功能的关键步骤: 1. **导入必要的框架**: 在你的Swift文件顶部,你需要导入UIKit和CoreGraphics...

    ios弹幕高效加载实现方式实例代码

    为了防止背景被裁剪,使用`CGContextSaveGState`和`CGContextRestoreGState`保存和恢复上下文状态,使得背景能在未裁剪的画板上绘制。 4. **动态滚动管理**: 弹幕的滚动是通过定时器实现的。定时器定期更新每个弹...

    Douraeman:Quartz2D画的一个哆啦A梦头像

    8. **状态保存与恢复(State Saving and Restoring)**:在进行复杂绘图时,开发者可能会使用`CGContextSaveGState`和`CGContextRestoreGState`来保存和恢复当前绘图状态,以避免影响后续的绘图操作。 项目中的...

    Cocoa绘制渐进色文字

    使用`CGContextSaveGState`保存当前图形上下文的状态,以便在绘制结束后恢复。然后根据渐变的方向设置CGContext的透明度层,并设置渐变的起点和终点。 4. **遍历文字并绘制** 对于每个字符,我们需要计算其在文本...

Global site tag (gtag.js) - Google Analytics