2012-02-12 53 views
16

我是在一個項目需要一些圖像處理,我也問的問題關於這一點,我得到了很好的解決方案這裏是鏈接create whole new image in iOS by selecting different properties混亂有關quartz2d,核芯顯卡,核心動畫,核心圖像

但現在我想了解得更詳細,我從我應該從哪裏開始學習石英2D或核心動畫或核心圖形或核心圖像

蘋果文檔困惑說關於石英2D是

石英2D API是Core Graphics fr的一部分所以你可能會在 看到被稱爲Core Graphics的Quartz,或者簡單地說CG。

和蘋果的文檔說,有關核心圖形是

Core Graphics框架是一個基於C語言的API,它是基於 石英高級繪圖引擎。

這是混淆了他們倆是如何相互關聯的......

現在的Core Animation包含還需要在繪製圖像

和核心圖像座標,邊界,框架等的所有概念引入ios 5

我應該從哪裏開始學習,或者我從哪個序列開始學習所有這些。

回答

42

石英和核心圖形是有效的同義詞。我傾向於避免使用「石英」,因爲這個術語很容易混淆(事實上,包括Core 動畫的框架是「QuartzCore」,進一步令人困惑)。

我會說:

  • 瞭解Core Graphics(CoreGraphics.framework)如果你需要高性能的矢量繪圖(直線,矩形,圓形,文本等),或許與位圖/光柵圖形與混雜簡單的修改(例如縮放,旋轉,邊界等)。核心圖形不太適合更高級的位圖操作(例如色彩校正)。它可以做位圖/光柵操作的方式很多,但它並不總是明顯或簡單。簡而言之,Core Graphics最適合「Illustrator/Freehand/OmniGraffle」類型的用途。

  • 學習Core Animation(在QuartzCore.framework內)如果你需要動畫內容。基本動畫(如在屏幕上移動視圖)完全可以在沒有核心動畫的情況下使用基本的UIView功能來完成,但是如果你想做更漂亮的動畫,Core Animation就是你的朋友。有些不直觀的是,核心動畫也是CALayer系列類的家園,除了可動畫之外,還可以做一些更有趣的事情,比如快速(儘管表現不佳)視圖陰影和3D變換(給你可能想到的作爲「窮人的OpenGL」)。但它主要用於動畫內容(或內容屬性,如顏色和不透明度)。

  • 如果您需要高性能,像素精確的圖像處理,請學習Core Image(QuartzCore.framework內部)。這可能是從色彩校正到鏡頭閃光到模糊以及其間的任何事情。 Apple發佈了a filter reference,列舉了可用的各種預先構建的Core Image過濾器。你也可以自己寫,儘管這不一定是因爲內心的淡淡。總之,如果你需要實現像「[選擇你最喜歡的照片編輯器]過濾器」,那麼Core Image就是你的選擇。

這是否說明了事項?

+1

非常感謝您的回答,這是非常有用的,請幫助我關於我想在我的iOS應用程序中做的更多事情,允許用戶從庫或凸輪中選擇圖像,然後允許用戶應用邊框和文本,然後它將被保存爲全新的圖像,對於邊框我已經在PS中創建了幾個不同的顏色邊框,但我希望邊框以編程方式創建,並且樣式也是平方或圓角,並且所有顏色都可以應用於此我首先學習? – supera 2012-02-12 14:41:17

+1

我會說與Core Graphics一起去。提示:瞭解剪切路徑。你會用它們來轉角。 – 2012-02-12 18:21:47

+5

噢,還有一件事:我鼓勵你今後在大寫和標點符號時多加小心一點。很難閱讀運行中的句子,你將失去一些潛在答覆者的注意力。 – 2012-02-12 18:24:30

3

核心動畫是一項技術,它依賴於更多的OpenGL,這意味着它的GPU綁定。

另一方面,核心圖形使用CPU進行渲染。它比Core Animation更精確(像素方式),但會使用CPU。

+0

如果你使用一個非常複雜的CAShapeLayer路徑然後路徑也被處理/呈現在我認爲的CPU上。 – Nils 2017-10-03 09:00:37