CGImage与CGImageRef

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]; 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值