Image I/O Programming Guide 中文翻译(二)Basics of Using Image I/O

Basics of Using Image I/O

Image I/O的基本使用

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). It supports a wide range of image formats, including the standard web formats, high dynamic range images, and raw camera data. Image I/O has many other features such as:

The fastest image decoders and encoders for the Mac platform

The ability to load images incrementally

Support for image metadata

Effective caching

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 typeCFURLRef.

The Core Foundation objectsCFDataRefandCFMutableDataRef.

Quartz data consumer (CGDataConsumerRef) and data provider (CGDataProviderRef) objects.

Image I / O框架提供了用于从源(CGImageSourceRef)读取图像数据并将图像数据写入目标(CGImageDestinationRef)的不透明数据类型。 它支持各种图像格式,包括标准网络格式,高动态范围图像和原始相机数据。 图像I / O有许多其他功能,如:

用于Mac平台的最快图像解码器和编码器

加载图像的能力

支持图像元数据

有效的缓存

您可以从以下内容创建图像源和图像目标对象:

URLs. 其位置可以指定为URL的图像可以充当图像数据的供应商或接收者。 在图像I / O中,URL表示为Core Foundation数据类型CFURLRef。

Core Foundation对象CFDataRefandCFMutableDataRef。

Quartz数据使用者(CGDataConsumerRef)和数据提供者(CGDataProviderRef)对象。

Using the Image I/O Framework in Your Application

在应用程序中使用图像I / O框架

Image I/O resides in the Application Services framework in OS X, and in the Image I/O framework in iOS. After adding the framework to your application, import the header file by including this statement:

#import <ImageIO/ImageIO.h>

Supported Image Formats

支持的图像格式

The Image I/O framework understands most of the common image file formats, such as JPEG, JPEG2000, RAW, TIFF, BMP, and PNG. Not all formats are supported on each platform. For the most up-to-date list of what Image I/O supports, you can call the these functions:

CGImageSourceCopyTypeIdentifiersreturns an array of theUniform Type Identifiers(UTIs) that Image I/O supports as image sources.

CGImageDestinationCopyTypeIdentifiersreturns an array of the uniform type identifiers (UTIs) that Image I/O supports as image destinations.

You can then use theCFShowfunction to print the array to the debugger console in Xcode, as shown inListing 1-1. The strings in the array returned by these functions take the form ofcom.apple.pict,public.jpeg,public.tiff, and so on.Table 1-1lists the UTIs for many common image file formats. OS X and iOS define constants for most common image file formats; The full set of constants are declared in theUTCoreTypes.hheader file. You can use these constants when you need to specify an image type, either as a hint for an image source (kCGImageSourceTypeIdentifierHint) or as an image type for an image destination.

Listing 1-1Getting and printing supported UTIs

CFArrayRef mySourceTypes = CGImageSourceCopyTypeIdentifiers();

CFShow(mySourceTypes);

CFArrayRef myDestinationTypes = CGImageDestinationCopyTypeIdentifiers();

CFShow(myDestinationTypes);

图像I / O框架了解大部分常见的图像文件格式,如JPEG,JPEG2000,RAW,TIFF,BMP和PNG。并非所有格式都支持在每个平台上。对于最新的图像I / O支持的最新列表,您可以调用这些功能:

CGImageSourceCopyTypeIdentifiers返回图像I / O支持的统一类型标识符(UTI)的数组作为图像源。

CGImageDestinationCopyTypeIdentifiers返回图像I / O支持的统一类型标识符(UTI)的数组作为图像目标。

然后,您可以使用CFShow函数将数组打印到Xcode中的调试器控制台,如清单1-1所示。这些函数返回的数组中的字符串采用com.apple.pict,public.jpeg,public.tiff等形式。表1-1列出了许多常见图像文件格式的UTI。 OS X和iOS为最常见的图像文件格式定义常量;全部常量在UTCoreTypes.h头文件中声明。当您需要指定图像类型时,您可以使用这些常量,作为图像源(kCGImageSourceTypeIdentifierHint)的提示或图像目的地的图像类型。

清单1-1获取和打印支持的UTI

CFArrayRef mySourceTypes = CGImageSourceCopyTypeIdentifiers();

CFShow(mySourceTypes);

CFArrayRef myDestinationTypes = CGImageDestinationCopyTypeIdentifiers();

CFShow(myDestinationTypes);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 常常和很多家长在微信上谈论到教育孩子的问题,最近在教育研究的过程中,读到一篇有关提升孩子教养问题的文章,希望各位家...
    蠡咫請蠢阅读 1,111评论 0 0
  • 姓名:武敬南 公司:宁波大发化纤有限公司 《六项精进》265期无锡塾感谢二组学员 【知~学习】 ...
    武敬南阅读 1,072评论 0 0
  • 早晨空腹站桩,破天荒第一次站了20分钟,但是效果一般,思绪乱飞,身体的感觉不细腻。然后又练了肝筋导引功,按揉部位的...
    misang阅读 1,137评论 0 3
  • 社会在不断的向前发展,随之而来的是暴增的信息。每天都会产生大量的信息,有关时事的、科技的、财经的、娱乐的等等...
    薛澈阅读 4,185评论 0 1
  • 生活是你给他大大的一个巴掌他也不会被激怒报复,你对他甜甜微笑他也不会感动温柔。 生活是你想给他一刀的时候就给他一刀...
    张一帆D阅读 1,202评论 0 0