日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

5 蘋果開發(fā)人員技術(shù)文檔連載之-系統(tǒng)架構(gòu)( 二 )



Quartz 2D

Quartz的Quartz 2D是一個具有矢量特性的圖形庫 。它的API允許您通過指定一系列命令和數(shù)學(xué)程式來生成文本與圖像 。這些命令和程式用來在二維空間內(nèi)繪制線段,幾何形狀,顏色,陰影,半透明效果和其它圖形屬性,而您無需為每一個特定像素指定屬性 。作為結(jié)果,一個幾何形狀可有效地以一系列路徑和屬性的方式來定義,而不是以位圖的方式來定義 。

通過使用矢量,Quartz 2D也能使用一種坐標(biāo)系來作為繪畫的參照,比方說這種坐標(biāo)系是以英寸或厘米為單位的,而不是基于像素柵格 。這種坐標(biāo)體系很靈活,允許不同的度量標(biāo)準(zhǔn),并且當(dāng)它不與任何一個屏幕分辨率綁定時,它具有一定程度的顯示獨(dú)立性 。它還使用了浮點(diǎn)坐標(biāo) 。優(yōu)先于Quartz Compositor的合成,Quartz 2D把以坐標(biāo)系來表現(xiàn)的矢量圖像信息轉(zhuǎn)化為像素值 。

Quartz 2D API是設(shè)備獨(dú)立的,這意味著,繪畫操作的最終目的文件可以是窗口位圖,也可以是可移植文檔格式(PDF)文件、PostScript文件或其它輸出格式 。當(dāng)使用QuickDraw或其它輸入機(jī)制來顯示PDF文件時,應(yīng)用程序可以直接或間接地調(diào)用Quartz 2D API 。

用于Quartz 2D的主要輸入方式是由QuickDraw和本機(jī)C API所生成的繪畫命令和程式 。(將來,更多的前端API可能會被支持)使用QuickDraw的應(yīng)用程序可以通過CGContextRef接口來調(diào)用Quartz 2D,從而獲得它的功能 。而QuickDraw使應(yīng)用程序可以由GrafPort接口來得到CGContextRef 。
來自QuickDraw或本機(jī)API的命令和程式被即刻轉(zhuǎn)換為所需的輸出格式,這些輸出格式既可以是屏幕渲染的位圖數(shù)據(jù)、PostScript(PostScript打印機(jī)的打印數(shù)據(jù)格式),也可以是其它類型打印機(jī)的光柵數(shù)據(jù) 。打印預(yù)覽時,還可以自動發(fā)布PDF 。將來,更多的后端轉(zhuǎn)換器可能會被支持,例如:繪圖儀 。

正如前一段所提出的,Quartz 2D是Mac OS X打印系統(tǒng)的底層引擎 。打印工作常常被分成二個步驟 。Quartz 2D用于解釋那些由本機(jī)C或QuickDraw API所構(gòu)建的文本和圖形,并將它們保存為PDF格式(主要的脫機(jī)打印格式) 。這時,PDF可再次通過Quartz 2D,將其轉(zhuǎn)換為適當(dāng)?shù)妮敵龈袷?。

打印系統(tǒng)

Mac OS X打印系統(tǒng)為Macintosh開發(fā)人員提供了一個靈活而強(qiáng)大的全新打印環(huán)境 。這種體系結(jié)構(gòu)有利于應(yīng)用程序開發(fā)人員在他們的程序中更好地提供對打印功能的支持,同時也有利于打印機(jī)供應(yīng)商編寫驅(qū)動程序和擴(kuò)展打印對話框 。Mac OS X的打印系統(tǒng)有著許多優(yōu)于Mac OS 8和9的優(yōu)點(diǎn),包括如下:

·打印系統(tǒng)使用Quartz 2D進(jìn)行渲染和轉(zhuǎn)換服務(wù) 。Quartz 2D支持具有獨(dú)立分辨率的PDF繪畫模型,允許應(yīng)用程序在所有級別的光柵和PostScript打印機(jī)上的進(jìn)行高品質(zhì)和經(jīng)過顏色管理的打印件輸出 。
·漂浮對話框允許同時打開多個打印對話框,并向一個打印機(jī)隊(duì)列中發(fā)送多個打印作業(yè) 。
·打印對話框可以由打印對話框擴(kuò)展來定制 。頁面設(shè)置對話框可以由應(yīng)用程序開發(fā)人員來擴(kuò)展,同時打印機(jī)供應(yīng)商及應(yīng)用程序開發(fā)人員都可以擴(kuò)展打印對話框 。
·打印機(jī)模塊代替了打印機(jī)驅(qū)動程序 。打印機(jī)模塊要比打印機(jī)驅(qū)動程序更易于編寫,因?yàn)轵?qū)動程序中的大量代碼現(xiàn)在已經(jīng)為您預(yù)先編寫好了,它們被存放在蘋果公司所提供的I/O模塊和打印系統(tǒng)的一些其它部分中 。
·打印應(yīng)用程序編程接口(API)包含對Carbon應(yīng)用程序的強(qiáng)健支持 。Carbon開發(fā)人員可以編寫一個能在Mac OS X中運(yùn)行的應(yīng)用程序,同時它也能在Mac OS 8和9中運(yùn)行 。Cocoa開發(fā)人員通過使用Cocoa對象和方法來支持打印功能 。Cocoa方法調(diào)用了Carbon打印管理器API.

這個全新打印系統(tǒng)在設(shè)計(jì)上的一個關(guān)鍵之處在于它對Carbon應(yīng)用程序的強(qiáng)健支持 。由于Mac OS X中的Carbon打印管理器與Mac OS 8和9中的打印管理器一樣被很好的支持,所以正如預(yù)期的那樣,Carbon應(yīng)用程序能夠在兩種環(huán)境中執(zhí)行相同的打印任務(wù) 。舉個例子來說,當(dāng)運(yùn)行Mac OS 8或Mac OS 9時,應(yīng)用程序使用傳統(tǒng)的用戶界面和驅(qū)動程序;而在Mac OS X中,應(yīng)用程序?qū)⒆詣永玫叫麓蛴∠到y(tǒng)中更為一致、靈活的打印對話框和打印架構(gòu) 。

推薦閱讀