您的位置:首页 > 移动开发 > IOS开发

IOS系统CoreImage与ImageIO探究

2014-04-04 18:38 981 查看

关于ImageIO:

来源:
ImageIO来源于Mac OS,这个框架也不是必要的,因为UIIMage已经对其进行了大量的封装,很多方法都可以通过UIImage直接调用使用。==,附加一句,
imageIO加入IOS在ios4以后,通过查看SDWebimage的源码,也许你可以看到这个库使用ImgageIO的时刻,判断了版本。

1:获取图片底层属性。

用途:
如果只是普通的对Image数据的读取,使用UIImage也许就够了,
但是,当我们需要访问image的底层属性的时刻,就需要使用这个了:

例如:
当我们需要访问一张图片的DPI:(图片每英寸的像素)
EXIF data:(EXIF是一种图像格式,它的数据存储与JPEG格式是完全相同的。只不过,在JPEG格式的头部,插入了数码照片的信息,例如光圈,快门,日期等各种信息。)
------------
当需要访问上面的信息的时刻,使用UIImage显然是不可能的事情==,这个时刻就需要使用到ImageIO框架了。

用例:
1:创建一个CGImageSourceRef 根据目标Image。
2:获取属性字典。CGImageSourceCopyPropertiesAtIndex
3:CGImageProperties Reference.列出了所有的可访问属性,可以通过CFDictionary的
CFDictionaryGetValue方法,获取感兴趣的数据。
-------------------

2:怎么使用ImageIO

2.1:ImageIO用于网络图片获取和上传。

The Image I/O framework provides opaque data types for reading image data from a source (CGImageSourceRef)
and writing image data to a destination (CGImageDestinationRef).
使用:
需要一个数据源和一个数据目的地,只需要这两个东西就可以实现image数据的远程传输。

创建方式:

You can create image source and image destination objects from:
URLs. Images whose location can be specified as a URL can act as a supplier or receiver of image data. In Image I/O, a URL is represented as the Core Foundation data type

CFURLRef.
The Core Foundation objects
CFDataRef and
CFMutableDataRef.
Quartz data consumer (CGDataConsumerRef)
and data provider (CGDataProviderRef) objects.

PART ONE-----------------------
IMAGE SOURCE:
数据源的创建:
之所以要存在image source这个东西,是因为,如果我们直接操作二进制数据块的话,==,会很难。而将那个二进制数据块封装成image Source就可以减少我们的处理。

那么,使用的方法是什么:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: