數(shù)據(jù)管理:數(shù)據(jù)管理是每一個上下文程序都需要進(jìn)行操作的茁彭。讀寫功能难述。
需要注意的是:在讀寫數(shù)據(jù)時首選的是使用Image I/O框架别凹,更多關(guān)于CGImageSourceRefandCGImageDestinationRefopaque data types可以查看Image I/O Programming Guide
Quartz 識別三種讀寫類型:
???? URL:你可以使用Core Foundation 數(shù)據(jù)類型CFURLRef 傳遞一個URL
? ? CFData:Core Foundation 的數(shù)據(jù)類型CFDataRefandCFMutableDataRef篷店,在Cocoa framework 里是NSData 類型砂客。
? ? Raw data:元數(shù)據(jù)(在Mac OX 中通了訪問Core Image的接口)
Moving Data into Quartz 2D??? 寫入
上面的列表匯總了從數(shù)據(jù)源獲取數(shù)據(jù)的方法挤牛。除了CGPDFDocumentCreateWithURL莹痢,返回值要么是一個CGImageSourceRef要么是一個CGDataProviderRef。圖像源和數(shù)據(jù)提供者抽象了數(shù)據(jù)訪問任務(wù)墓赴,并消除了應(yīng)用程序通過一個原始內(nèi)存緩沖區(qū)管理數(shù)據(jù)的需要竞膳。圖像源是寫入Quartz的首選方法。一個圖像源代表了各種各樣的圖像數(shù)據(jù)诫硕。一個圖像源包括一個以上的圖像坦辟,縮略圖圖像和每個圖像、每個圖像文件的屬性章办。在你有了一個CGImageSourceRef對象之后锉走,你可以完成以下的任務(wù):
1.通過方法CGImageSourceCreateImageAtIndex,CGImageSourceCreateThumbnailAtIndex, orCGImageSourceCreateIncremental.創(chuàng)建圖像(CGImageRef)
2.調(diào)用方法CGImageSourceUpdateDataorCGImageSourceUpdateDataProvider.給數(shù)據(jù)源添加內(nèi)容。
3.通過調(diào)用方法CGImageSourceGetCount,CGImageSourceCopyProperties, andCGImageSourceCopyTypeIdentifiers.從數(shù)據(jù)源獲取信息藕届。
當(dāng)你指定URL時創(chuàng)建一個PDF文檔 挪蹭,方法CGPDFDocumentCreateWithURL是最便利的。
Moving Data out of Quartz 2D?? 讀取
上面的列表匯總了從數(shù)據(jù)源獲取數(shù)據(jù)的方法休偶。除了CGPDFDocumentCreateWithURL梁厉,返回值要么是一個CGImageSourceRef要么是一個CGDataConsumerRef。圖像源和數(shù)據(jù)提供者抽象了數(shù)據(jù)寫入任務(wù)踏兜,词顾。圖像源是讀取Quartz的首選方法八秃。一個圖像源目的地代表了各種各樣的圖像數(shù)據(jù)。一個圖像源包括一個以上的圖像肉盹,縮略圖圖像和每個圖像昔驱、每個圖像文件的屬性。在你有了一個CGImageDestinationRef對象之后垮媒,你可以完成以下的任務(wù)
1.通過方法CGImageDestinationAddImageorCGImageDestinationAddImageFromSource.把圖像(CGImageRef)添加到目的地舍悯。
2.調(diào)用方法CGImageDestinationSetProperties.設(shè)置屬性
3.通過調(diào)用方法CGImageDestinationCopyTypeIdentifiersorCGImageDestinationGetTypeID..從數(shù)據(jù)源獲目的地取信息航棱。