Quartz2D

由于太多的新知識,所以一開始先來科普每個概念。

  • Quartz 2D

Quartz 2D可以在iOS環(huán)境和所有Mac OS X應(yīng)用程序內(nèi)核以外的二維繪圖引擎。你可以使用Quartz 2D應(yīng)用程序編程接口(API)來訪問功能,如基于路徑的繪圖、繪畫與透明度,著色,畫陰影,透明層,色彩管理,抗鋸齒渲染,生成PDF文檔,PDF元數(shù)據(jù)訪問。在iOS中,Quartz2D跟CG,OpenGl,還有UIKit一起工作。這里簡單介紹幾個技術(shù)的聯(lián)系

  • Graphics Contexts
  • Core Graphics

(一)Quartz 2D

page

只能用比喻去描述,就是好比你畫了一幅畫,你這張紙當(dāng)然還有畫的內(nèi)容就叫做page,這個page或許會成為真正的一張畫紙,如果你的輸出設(shè)備是一臺打印機(jī);或許是一個虛擬的現(xiàn)實(shí)設(shè)備,PDF;或許是一個位圖,這個實(shí)際的類型取決于你使用的Graphics Contexts。

painter`s model

我把這個理解為作畫的方式。這個方式可以分為給畫先畫出輪廓,然后再涂色,但是如果你想在畫出輪廓后的畫做出修改,只能繼續(xù)一層層的涂下去把之前的覆蓋了。

painter`s model.png

Quarts2D只能輸出到Graphics Context

剛剛提到的page,就是畫完之后的東西,現(xiàn)在需要把畫收藏起來,那這些destinatisons(Graphics Context)就是儲藏的東西,好比相框吧。

Quartz drawing destinations.png

這些Graphics Context都是一個不透明的數(shù)據(jù)類型,(CGContextRef)用來裝載Quartz2D畫出來的page,這Graphics Context包含參數(shù)有圖形繪制的參數(shù),還有在特定設(shè)備上的表示形式。后面又說了,Graphics Context包含了我需要的所有目的地,因此我只需要拿著畫,通過Graphics Context并需要計(jì)算轉(zhuǎn)換,就能輸出到不同的destinations。

在iOS中可以使用以下Graphics Context(暫時感覺只有前兩個需要注意):

  1. bitmap graphics context
  2. PDF graphcs context
  3. window graphics context
  4. layer context

Quartz2D不透明的數(shù)據(jù)類型

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容