iOS CoreGraphics 畫個長方形

uikit

Core Graphics是一個使用Quartz作為繪圖引擎並且基於C語言的API框架。它提供了低層級、輕量級、高保真的2D渲染。我們可以利用這個框架來處理基於路徑的繪畫、變形、顏色管理、脫離屏幕的渲染、模版、漸變、遮罩、圖像創建及管理以及PDF文件的創建、顯示和分析。

iOS支持兩套圖形API,Core Graphics以及OpenGL,而他們都是跨平台的Framework.

Core Animation的操作時基於GPU進行的而Core Graphics是基於CPU進行的。

Core Graphics繪製會讓Core Animation 使用CPU創建一張Content圖,CPU處理完生成圖片以後交給GPU進行顯示的處理。

一般來說,GPU會處理Rendering, Tilering, Compositing,而CPU更多的時候是做圖層佈局處理和協助GPU做預處理(預繪製、動畫準備、動畫提交、計算動畫中間值等)。

所以實際上,CPU處理完數據以後最終都會提交給GPU。

Core Graphics是基於C語言的API框架,這意味著Core Graphics不是面向對象的,這和GCD是一樣的情況,不過在Swift3都會進行封裝。


Core Graphics術語

  1. path 路徑
  2. Shadow 陰影
  3. Stroke 筆畫
  4. Clip Path 裁剪路徑
  5. Line Width 線條粗細
  6. Blend Mode 混合模式
  7. Fill Color 填充色
  8. Current Transform Matrix 當前形變矩陣
  9. Line Dash 線條圖案

Core Graphics 繪圖步驟

  1. 獲取上下文(Context)
  2. 設置路徑
  3. 將路徑放到上下文中(類似畫布)
  4. 設置上下文狀態(路徑屬性)
  5. 繪製路徑

Core Graphics劃出一個矩形的例子:

Core Graphics draw rectangle

同樣可以用UIBezierPath來畫,因為UIBezierPath封裝了CGPathCreateMutable方法,所以可以變得更簡潔。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *