• CGImageRef 与 UIImage


    简单的说,CGImageRef是与位图打交道的

    先来看一段e文


    翻译一下:

        1)NSImage 是一个抽象类,它能代表各种图像类型,同时也能定义各种图像。通常,大家如果对图像的类型不在意的话,NSImage是很好用的。同时,他也是Appkit唯一能接受的图像类,至少到目前为止是这样。(Appkit , UIKit 是iphone里界面,UI的库)

        2)CGImage只能代表bitmaps。如果你像直接和bitmap 数据打交道,CGImage是很好的选择。对CGImage的操作都在Core graphics中,诸如混合(blend)和遮罩(masking)需要CGImageRef。 CGImageRef 能用来创建NSBitmapImageRep, 它能添加到NSImage。

        3)我认为官方文档对于CIImage的定义最为准确:

        尽管 CIImage 对象中包含了与它相关的图像数据,它并不是一个图像。你可以把 CIImage 对象看作一个图像“处方”。一个 CIImage 对象中包含了生成一个图像的所需要的所有信息,不过核心绘图系统在没有得到明确指令的情况下是不会绘制这个图像的。“懒惰评估”机制 (请参考“过滤器客户和过滤器创建者”) 允许核心绘图系统尽可能高效的运行

        基于Mac OS X的GPU优化图像滤镜各种算法,要求使用CIImages。但是,诸如 CGImageRefs,他们能转换为 NSBitmapImageReps

    两者只见互相转换得方法

    1. CGImageRef转换成UIImage 

    CGImageRef iOffscreen = CGBitmapContextCreateImage(context);

    UIImage* image = [UIImage imageWithCGImage: iOffscreen]; 

    2.UIImage转换成CGImageRef 

    UIImage *loadImage=[UIImage imageNamed:@"comicsplash.png"];

    CGImageRef cgimage=loadImage.CGImage;

    大部分转载于http://blog.csdn.net/linzhiji/article/details/6738462,略有修改

  • 相关阅读:
    Cocos开发中Visual Studio下libcurl库开发环境设置
    Cocos2d-x数据持久化-修改数据
    Cocos2d-x数据持久化-查询数据
    Cocos2d-x中SQLite数据库管理工具
    Cocos2d-x中创建SQLite数据库
    Visual Studio下SQLite数据库开发环境设置
    spring01
    String类的常用方法
    基本数据类型的包装类和随机数
    枚举类的使用
  • 原文地址:https://www.cnblogs.com/xiaochaozi/p/3681252.html
Copyright © 2020-2023  润新知