Quartz2D绘图一
来源:互联网 发布:淘宝软文引流怎么写 编辑:程序博客网 时间:2024/05/21 10:22
UIImage虽然可以加载、显示各种格式的位图,甚至可以同时加载图片,接下来依次播放多张图片形成动画。但UIImage的功能有限,它不能对图片进行缩放、旋转,不能“挖取”源图片的制定区域等。这些功能可借助Quartz 2D 的CGImageRef 来实现。
UIImage与CGImageRef之间可以相互转换。 CGImageRef 并不是面相对象的API,也不是类,只是一个指针类型。
UIImage转换为CImageRef 代码如下:
UIImage *image =...CGImageRef ciRef =[image CGImage];
CImageRef 转换为UIImage代码如下:
CGImageRef ciRef =...UIImage *image =[UIImage imageWithCGimage:ciRef];
Quartz 2D 绘图基础:CGContextRef
1,自定义UIView时获取CGContextRef
开发自定义UIView的方法是,开发一个继承UIView的字累,并重写该UIView的drawRect:方法,当该UIView每次显示出来时,或该UIView的内容需要更新时,系统都会自动调用改UIView的drawRect:方法。在调用drawRect:方法之前,系统会自动配置绘图环境。因此,程序只要通过如下函数即可获取 CGContextRef绘图API
CGrectRef ctx =UIGraphicsGetCurrentContext();
获取CGContextRef 之后,即可进行绘图。
需要指出的是,重写UIView的drawRect:方法绘图时,它的绘图API的坐标原点位于该控件的左上角,横向为X轴,X坐标越大,位置越向右;纵向为Y轴,Y轴坐标越大,位置越向下。
2,创建位图时获取CGContextRef
如果需要在创建位图时获取CGContextRef,那么程序需要先调用UIGraphicsBeginImageContext()函数来创建内存中的图片。然后才能调用UIGraphicsGetCurrentContext()获取绘图的CGContextRef。
代码如下:
//创建内存图片UIGraphicsBeginImageContext(CGSizeMake(320,480));//获取向内存中图片执行绘图的CGContextRefCGContextRef ctx =UIGraphicsgetCurrentContext();
Quartz 2D 的绘图相关函数
上表中的大部分方法都涉及使用路径,路径由另一个API:CGPathRef来代表。
CGPathRef代表任意多条直线或者曲线连接而成的任意图形,当CGContextRef根据CGPathRef绘制时,它可以绘制出任意的形状。
在绘图之前,还需要对绘图的颜色,线条粗细等属性进行设置,Quartz2D提供了下面设置绘图属性的相关函数。
- Quartz2D绘图一
- iOS之Quartz2D绘图(一)
- Quartz2D绘图
- Quartz2D-绘图
- Quartz2D绘图
- Quartz2D绘图
- Quartz2D绘图
- Quartz2D绘图闭合曲线
- Quartz2D绘图简介
- iOS开发 - Quartz2D绘图
- Quartz2D二维绘图引擎
- Quartz2D绘图之阴影
- iOS开发 - Quartz2D绘图
- [Quartz2D-1]-绘图
- quartz2d基本绘图
- Quartz2D绘图相关方法
- Quartz2D绘图详解
- iOS开发 - Quartz2D绘图
- string与int类型转换 && reserse()
- react native for android
- Android Material适配 为控件设置指定背景色和点击波纹效果
- 基本的TCP编程
- 解决Android加载图片时内存溢出的问题
- Quartz2D绘图一
- HDU 5072 Coprime(容斥)
- 用python + hadoop streaming 编写分布式程序的本地调试方法
- C++静态库与动态库
- hdu 5445 Food Problem(多重背包)
- 1075:What Are You Talking About
- 黑马程序员——Java基础(五)之面向对象
- js的调用函数前先执行某语句问题
- cocoaPods的安装