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);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

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