日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Quartz 2D 概覽(參考蘋果官網)

系統 2307 0

介紹一下Quartz 2D,主要資料來源于蘋果官網;不足之處有請 大家拍磚。

Quartz 2D是iPhone OS和Mac OS X環境下的二維繪圖引擎。借用Quartz 2D API,你可以接觸到這樣一些特性:基于路徑的繪圖,透明度繪圖,遮蓋,陰影,透明層,顏色管理,防鋸齒渲染,生成PDF,以及PDF元數據相關處理。可能的時候,Quartz 2D會借助硬件的力量。

在Mac OS X下,Quartz 2D能與其它圖形圖像技術相結合——Core Image,Core Video,OpenGL,以及Quick Time。

類似的,在iPhone OS下的Quartz 2D也能與其它的圖像和動畫技術相結合——Core Animation,OpenGL ES,以及UIKit類。


1. 頁面(Page)

Quartz 2D使用畫筆模型——每一個繪圖操作在一塊輸出畫布上進行一層繪制(paint),這個畫布就叫做頁面。繪制在頁面上的東西無法改動,除非修改該頁面。

下圖顯示了“后來者居上”的遮蓋順序。頁面可以是一張真正的紙(如果輸出設備是打印機);可以是一張虛擬的紙(如果輸出設備是pdf);甚至可以是一幅位圖。


2. 繪制目標:圖形內容(Graphics Context)


圖形內容是一個復雜的數據類型(CGContextRef),用于封裝Quartz用于繪圖的信息。這些信息包括了繪圖參數以及頁面上的繪圖的代表。


同一幅畫可以繪制到不同的設備上,而只需要改變圖形內容的,無需改變Quartz繪制順序。你不需要自行針對設備進行計算——Quartz會替你完成這一切。

?




3. Quartz 2D的模糊數據類型(Opaque Data Type)

在圖形內容之外,Quartz 2D還定義了一系列模糊數據類型,均以CG為前綴。其中三種數據類型如下圖所示。

?




4. 圖形狀態(Graphics States)

Quartz 2D根據當前的圖形狀態來修改繪圖結果。例如,當你調用函數來填充顏色時,你同時也就修改了儲存在圖形狀態中的數值。其它常用的圖形狀態顏色包括線寬,當前位置,以及字體大小。


圖形內容包含了一個堆棧,儲存了圖形狀態。初建圖形內容時,此堆棧為空。圖形狀態可以通過函數 CGContextSaveGState 和 CGContextRestoreGState 來保存和恢復。


5.Quartz 2D坐標

Quartz 2D的坐標體系如下圖所示,原點在左下方。



考慮到不同的設備有著不同的圖像能力,因此圖形的位置和大小必需獨立于設備來定義——這由當前變換矩陣(CTM)來完成。


6. 內存管理

幾個簡單實用的準則:

6.1 如果你創建或復制一個對象,該對象的retain值會加一;因此你也必需釋放它。具體反映在帶有Create或Copy的函數名當中。

6.2 反之,如果函數名中沒有Create或Copy,你就不需要釋放。

6.3 如果你不擁有一個對象但需要使用它,你可以retain之后再釋放

Quartz 2D 概覽(參考蘋果官網)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 大余县| 德庆县| 孟津县| 鹤山市| 江阴市| 长沙县| 卢氏县| 临清市| 乐昌市| 长春市| 东乡族自治县| 偏关县| 乡城县| 曲沃县| 忻城县| 民县| 靖西县| 布尔津县| 临武县| 贺兰县| 保亭| 罗源县| 洪湖市| 东阿县| 贵溪市| 四会市| 芦溪县| 信宜市| 如东县| 高淳县| 土默特左旗| 贵南县| 昭平县| 砀山县| 苍南县| 达日县| 墨脱县| 雷州市| 达尔| 宝丰县| 弥渡县|