ImageIO框架詳細(xì)解析(二) —— 使用ImageIO基礎(chǔ)

版本記錄

版本號(hào) 時(shí)間
V1.0 2017.10.16

前言

ImageIO框架主要用來(lái)讀寫(xiě)大多數(shù)圖像文件格式。 管理顏色和訪(fǎng)問(wèn)圖像元數(shù)據(jù)柠衍。接下來(lái)幾篇我們就詳細(xì)的解析這個(gè)框架。感興趣的可以看我寫(xiě)的上面幾篇。
1. ImageIO框架詳細(xì)解析(一) —— 基本概覽

Introduction - 介紹

圖像I / O編程接口允許應(yīng)用程序讀取和寫(xiě)入大多數(shù)圖像文件格式妻往。最初是Core Graphics框架的一部分,圖像I / O駐留在自己的框架中试和,允許開(kāi)發(fā)人員獨(dú)立地使用Core Graphics(Quartz 2D)讯泣。Image I/ O提供了訪(fǎng)問(wèn)圖像數(shù)據(jù)的最終方法,因?yàn)樗浅8咝г暮罚梢院苋菀椎卦L(fǎng)問(wèn)元數(shù)據(jù)好渠,并提供顏色管理昨稼。

OS X v10.4和稍后的ios4和稍后的版本中,I / O接口可用拳锚。


誰(shuí)適合看這個(gè)文章

本文章是為在應(yīng)用程序中讀寫(xiě)圖像數(shù)據(jù)的開(kāi)發(fā)人員編寫(xiě)的假栓。目前使用圖像導(dǎo)入器或其他圖像處理庫(kù)的開(kāi)發(fā)人員應(yīng)該閱讀該文檔,了解如何使用圖像I / O框架霍掺。


文檔組織

這篇文章是由以下部分組成:

  • Basics of Using Image I/O

    • 討論支持的圖像格式匾荆,并演示如何在Xcode項(xiàng)目中包含框架,這也是這篇文章的主要內(nèi)容杆烁。
  • Creating and Using Image Sources

    • 顯示如何創(chuàng)建一個(gè)圖像源牙丽,并從圖像源創(chuàng)建一個(gè)圖像,并從用戶(hù)界面中提取屬性用于展示兔魂。
  • Working with Image Destinations

    • 提供創(chuàng)建圖像目的地的信息烤芦,設(shè)置其屬性,并向其添加圖像入热。

可以參考


基本使用

下面我們就看一下ImageIO框架的基本使用勺良。

Image I / O框架提供了不透明的數(shù)據(jù)類(lèi)型绰播,用于從源(CGImageSourceRef)讀取圖像數(shù)據(jù),并將圖像數(shù)據(jù)寫(xiě)入目的地(CGImageDestinationRef)尚困。它支持廣泛的圖像格式蠢箩,包括標(biāo)準(zhǔn)的web格式、高動(dòng)態(tài)范圍的圖像和原始的攝像數(shù)據(jù)事甜。圖像I / O有許多其他特征谬泌,如:

  • Mac平臺(tái)最快的圖像解碼器和編碼器
  • 逐步加載圖像的能力
  • 支持圖像元數(shù)據(jù)
  • 有效的緩存

您可以從以下幾個(gè)方面創(chuàng)建圖像源和圖像目標(biāo)對(duì)象:

  • url÷咔可以將其位置指定為URL的圖像可以作為圖像數(shù)據(jù)的提供者或接收方掌实。在圖像I / O中,URL被表示為Core Foundation數(shù)據(jù)類(lèi)型CFURLRef邦马。
  • Core Foundation對(duì)象CFDataRefCFMutableDataRef贱鼻。
  • Quartz 數(shù)據(jù)消費(fèi)者 (CGDataConsumerRef)和數(shù)據(jù)提供者(CGDataProviderRef)對(duì)象。

1. Using the Image I/O Framework in Your Application - 在您的程序中使用Image I/O框架

圖像I / O駐留在OS X的應(yīng)用程序服務(wù)框架中滋将,以及在iOS中的I / O框架中邻悬。在將框架添加到應(yīng)用程序之后,通過(guò)包含以下語(yǔ)句導(dǎo)入頭文件:

#import < ImageIO / ImageIO.h >

2. Supported Image Formats - 支持的圖像格式

Image I / O框架可以理解大多數(shù)常見(jiàn)的圖像文件格式随闽,如JPEG父丰、JPEG2000、RAW掘宪、TIFF蛾扇、BMP和PNG攘烛。不是所有的格式都支持在每個(gè)平臺(tái)上。對(duì)于I / O支持的最新列表屁桑,您可以調(diào)用這些函數(shù):

然后可以使用CFShow函數(shù)將數(shù)組打印到Xcode中的調(diào)試器控制臺(tái)蘑斧,如Listing 1-1所示靖秩。這些函數(shù)返回的數(shù)組中的字符串以com.apple.pict, public.jpeg, public.tiff的形式返回。Table 1-1 列出了許多常見(jiàn)圖像文件格式的UTIs竖瘾。OS X和iOS為大多數(shù)常見(jiàn)的圖像文件格式定義了常量沟突,完整的常量集在UTCoreTypes中聲明。當(dāng)你需要指定一個(gè)圖像類(lèi)型捕传,您可以使用這些常量惠拭,要么作為一個(gè)圖像源的提示(kCGImageSourceTypeIdentifierHint)或作為一個(gè)圖像的圖像類(lèi)型的目的地。

// **Listing 1-1**  Getting and printing supported UTIs

CFArrayRef mySourceTypes = CGImageSourceCopyTypeIdentifiers();

CFShow(mySourceTypes);

CFArrayRef myDestinationTypes = CGImageDestinationCopyTypeIdentifiers();

CFShow(myDestinationTypes);
Table 1-1 Common uniform type identifiers (UTIs) and image content type constants

后記

未完庸论,待續(xù)~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末职辅,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子聂示,更是在濱河造成了極大的恐慌域携,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鱼喉,死亡現(xiàn)場(chǎng)離奇詭異秀鞭,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)扛禽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)锋边,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人编曼,你說(shuō)我怎么就攤上這事豆巨。” “怎么了掐场?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵往扔,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我刻肄,道長(zhǎng)瓤球,這世上最難降的妖魔是什么融欧? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任敏弃,我火速辦了婚禮,結(jié)果婚禮上噪馏,老公的妹妹穿的比我還像新娘麦到。我一直安慰自己绿饵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布瓶颠。 她就那樣靜靜地躺著拟赊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪粹淋。 梳的紋絲不亂的頭發(fā)上吸祟,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音桃移,去河邊找鬼屋匕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛借杰,可吹牛的內(nèi)容都是我干的过吻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蔗衡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼纤虽!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起绞惦,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤逼纸,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后翩隧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體樊展,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年堆生,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了专缠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡淑仆,死狀恐怖涝婉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蔗怠,我是刑警寧澤墩弯,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站寞射,受9級(jí)特大地震影響渔工,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜桥温,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一引矩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦旺韭、人聲如沸氛谜。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)值漫。三九已至,卻和暖如春织盼,著一層夾襖步出監(jiān)牢的瞬間杨何,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工沥邻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晚吞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓谋国,卻偏偏與公主長(zhǎng)得像槽地,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芦瘾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 6轉(zhuǎn)載-->>IOS框架和服務(wù) 在iOS中框架是一個(gè)目錄捌蚊,包含了共享資源庫(kù),用于訪(fǎng)問(wèn)該資源庫(kù)中儲(chǔ)存的代碼的頭文件近弟,...
    李小六_閱讀 3,609評(píng)論 2 24
  • 在iOS中框架是一個(gè)目錄缅糟,包含了共享資源庫(kù),用于訪(fǎng)問(wèn)該資源庫(kù)中儲(chǔ)存的代碼的頭文件祷愉,以及圖像窗宦、聲音文件等其他資源。共...
    ch123閱讀 1,779評(píng)論 0 1
  • 轉(zhuǎn)自:iOS框架和服務(wù) 框架簡(jiǎn)介 一二鳄、什么是系統(tǒng)框架 在iOS中框架是一個(gè)目錄赴涵,包含了共享資源庫(kù),用于訪(fǎng)問(wèn)該資源庫(kù)...
    淇濱杜隆坦閱讀 1,369評(píng)論 0 8
  • 版本記錄 前言 Core Image是IOS5中新加入的一個(gè)框架,里面提供了強(qiáng)大高效的圖像處理功能欺殿,用來(lái)對(duì)基于像素...
    刀客傳奇閱讀 1,311評(píng)論 0 1
  • 在iOS中框架是一個(gè)目錄寄纵,包含了共享資源庫(kù),用于訪(fǎng)問(wèn)該資源庫(kù)中儲(chǔ)存的代碼的頭文件脖苏,以及圖像程拭、聲音文件等其他資源。共...
    nkk閱讀 608評(píng)論 0 1