Image I/O提供了从源(CGImageSourceRef)处读取图片数据的不透明数据类型,以及把图片数据写入到目标地点(CGImageDestinationRef)。它能支持大部分的图片格式,包括标准网页格式,高动态范围成像,以及原始的相机数据。Image I/O具备的其他功能如下:

  • 在Mac平台下的高速编码解码图片
  • 逐步加载图片
  • 支持图片元数据
  • 有效的缓存

我们可以使用如下的方式来创建图片源和目标图像对象:

在程序中使用Image I/O框架

Image I/O在OS X中存在于iOS中的Image I/O framework。在将框架添加到程序之后,导入相应的头文件。如下:

#import <ImageIO/ImageIO.h>

支持的图片格式

Image I/O能够理解大部分的图片文件格式,比如JPEG,JPEG2000,RAW,TIFF,BMP和PNG,但是并不是支持每一个平台的所有格式。如果想要知道Image I/O支持的类型,我们可以调用下面这些方法:

我们可以在Xcode中使用CFShow在调试的时候来打印这些数组,这些方法返回的数组中字符串类似于com.apple.pictpublic.jpegpublic.tiff等等。在下面的表中的UTI列出了一些公共的图片文件格式。在OS X和iOS中为公共的图片文件格式定义了相应的常量。这些所有的设置常量在UTCoreTypes.h头文件中(#import<MobileCoreServices/UTCoreTypes.h>)。我们可以在指明图片类型的时候使用这些常量,把他们作为图像源或者目标图像的类型。

CFArrayRef mySourceTypes = CGImageSourceCopyTypeIdentifiers();
CFShow(mySourceTypes);
CFArrayRef myDestinationTypes = CGImageDestinationCopyTypeIdentifiers();
CFShow(myDestinationTypes);
UTI 图像类型常量
public.image kUTTypeImage
public.png kUTTypePNG
public.jpeg kUTTypeJPEG
public.jpeg-2000 (OS X only) kUTTypeJPEG2000
public.tiff kUTTypeTIFF
com.apple.pict (OS X only) kUTTypePICT
com.compuserve.gif kUTTypeGIF

results matching ""

    No results matching ""