콘텐츠로 건너뛰기
Home » CGLayer

CGLayer

트랙킹 캔버스 뷰 만들기 (Cocoa)

예전에 코어 그래픽을 사용해서 UIView위에 손가락으로 그림을 그릴 수 있는 간단한 핑거 드로잉 캔버스를 구현해본 바 있는데, 똑같은 내용을 NSView에 적용해보고자 한다. 이전글이 Objective-C로 작성되어 있는데, 이번에는 Swift로 간단하게 작성해보려 한다. 원리는 동일하다. CGLayer를 하나 만들고, 마우스를 사용해서 뷰를 긁을 때(드래그할 때)마다  코어 그래픽을 사용해서 레이어에 그림을 그리고, 다시 뷰 리드로잉 사이클에서는 뷰에 레이어를 그리는 것이다. class TrackDrawCanvasView: NSView { var previousPoint: NSPoint? = nil lazy var drawingLayer: CGLayer? = { [unowned self] in let cs = CGColorSpace(name:CGColorSpace.sRGB)! let ctx =… 더 보기 »트랙킹 캔버스 뷰 만들기 (Cocoa)

[iOS] 코어그래픽에 손대기

코어그래픽은 뷰에 그림을 그리는 기술이다. 하지만 C로 짜여진 API에 온갖 혼란스러운 함수명하며, 컨텍스트와 같은 어려운 개념들이 들어가면서 나와 같은 초보자에게는 마치 ‘넘을 수 없는’ 장벽과 같이 느껴진다. 하지만 많은, 정말 많은 튜토리얼들이 코어그래픽을 사용해서 그림을 그리는 이유는 명확하다. 바로 “아주 빠르기” 때문이다. 코어 그래픽은 그래픽 메모리의 버퍼를 직접 다루므로 아주 빠르다. (다만 일부 기기에서는 느리기도 하더라 ㅠㅠ) 오늘은 “시작하는 마음가짐”으로 코어 그래픽에 대해 잠깐 살펴보도록 하자.
코어그래픽을 사용하는데는 ‘컨텍스트’라는 개념을 이해해야 하는데, 이는 뒤에서 설명하기로 하고 잠시동안 ‘컨텍스트’는 그림을 그리는 도화지, 혹은 포토샵에서의 레이어와 같다고 간주하자.
더 보기 »[iOS] 코어그래픽에 손대기

CGLayer를 사용한 핑거 드로잉 구현 (Objective-C)

코어 그래픽(Core Graphics)은 저수준의 드로잉 명령 API들을 통해서 화면이나 비트맵이미지, PDF 등에 시각적 요소를 그릴 수 있게 하는 프레임워크이다. 예전에는 Quartz, CoreGraphics라는 이름으로 분리되어 있었는데 iOS5 부터 UIKit의 일부로 완전히 편입되었다. 간단한 모양의 시각적 오브제를 표현하기 위해 비트맵 이미지를 사용하는 것보다 런타임에 오브제를 빠르게 그리고, 이를 재사용할 수 있게 하는 등의 기능을 제공한다. 실제로 많은 앱들이 현재에도 코어 그래픽을 사용해서 UI를 표현하는 경우가 많이 있다. 이번 글에서는 코어 그래픽 API를 사용해서 손가락으로 화면에 그림을 그리는 간단한 캔버스 앱을 구현하는 방법을 살펴보기로 하겠다.

더 보기 »CGLayer를 사용한 핑거 드로잉 구현 (Objective-C)