美文网首页
CGImage与CGImageRef的关系

CGImage与CGImageRef的关系

作者: 饭饭男 | 来源:发表于2017-06-05 17:15 被阅读244次

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

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

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

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

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

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

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

    相关文章

      网友评论

          本文标题:CGImage与CGImageRef的关系

          本文链接:https://www.haomeiwen.com/subject/xyxwfxtx.html