CGImage与CGImageRef

本文详细介绍了UIImage与CGImageRef之间的转换方法,以及如何利用CGImageRef进行图片缩放、旋转等操作,提供了Quartz2D绘图的基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

12.1.2  CGImage与CGImageRef

UIImage虽然可以加载、显示各种格式的位图,甚至可以同时加载图片,接下来依次播放多张图片形成动画。但UIImage的功能依然有限,它不能对图片进行缩放、旋转,不能"挖取"源图片的指定区域等,这些功能可借助Quartz 2D的CGImageRef来实现。

关于Quartz 2D绘图的知识,后面会详细介绍,包括如何利用CGImageRef来绘制、旋转、缩放位图等。

UIImage与CGImageRef之间可以相互转换,CGImageRef并不是面向对象的API,也不是类,只是一个指针类型,Quartz 2D对CGImageRef的定义为:typedef struct CGImage *CGImageRef;,由此可见,CGImageRef只是一个指针类型。

如果已有UIImage,程序可以调用UIImage的CGImage方法获取它封装的CGImageRef。例如,如下代码:
 

  1. UIImage* image = ...  
  2. CGImageRef ciRef = [image CGImage]; 

如果已有CGImageRef,将它包装成UIImage也很简单,调用UIImage的imageWithCGImage:方法加载图片即可。例如如下代码:
 

  1. CGImageRef ciRef = ...  
  2. UIImage* image = [UIImage imageWithCGImage: ciRef]; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值