- html5
- html5/VA
- html5/canvas
- html5/drag-and-drop
- html5/form
- html5/geolocation
- html5/offline-web-application
- html5/others-api
- html5/outline
- html5/overview
- html5/richtext-edit
- html5/video&audio
- html5/web-storage
- html5/web-workers
- html5/webSqlDatabase
- html5/websocket
- html5/문제점
- html5practice/roundRect
- html5practice/즐겨찾기목록만들기
1. 캔버스? ¶
- 그래픽을 자유롭게 그릴 수 있는 영역.
- 고정된 넓이와 높이.
- IE를 제외한 모든 주요 브라우저(?)에서 사용할 수 있는 기능. IE에서 사용하고 싶으면 Explorer Canvas, uuCanfas.js 등의 라이브러리를 사용하여 제한적 기능으로 사용할 수 있다.
2. 사용 방법 ¶
<canvas></canvas>
- canvas위에 그림을 그리려면 Javascript로 그리기 컨텍스트를 생성해야한다.
var canvas = document.getElementById(가져오고 싶은 canvas의 id); var context = canvax.getContext("2d");
- 그리기 컨텍스트는 그래픽을 그리는 데 도움이 되는 메서드를 제공한다.
2.2. 이미지 삽입 ¶
- img 요소, video 요소, canvas 요소의 DOM 객체를 그릴 수 있다.
- img 요소의 DOM 객체는 Image 생성자를 사용하여 만들 수도 있다.
- video 요소의 DOM 객체를 사용할 경우 drawImage()를 호출한 시점에서 재생되는 프레임을 그려준다.
- img 요소의 DOM 객체는 Image 생성자를 사용하여 만들 수도 있다.
- 이미지를 원래 크기로 삽입할 수 있다.
- 이미지의 사이즈를 지정하여 삽입할 수 있다.
- 원래 이미지에서 일부분을 잘라내어 삽입할 수 있다.
- (그림 삽입)
2.3. 복잡한 선이나 도형 그리기 ¶
- 패스
- 캔버스의 API를 이용하여 그려진 선들의 집합.
- 서브 패스
- 패스를 구성하는 하나하나의 선.
- (그림 삽입)
- 패스를 구성하는 하나하나의 선.
- 그리기 컨텍스트가 제공하는 API를 이용하여 직선, 베지에 곡선, 원호 등 다양한 패스를 그릴 수 있다.
- 캔버스의 API를 이용하여 그려진 선들의 집합.
- 패스를 그려 그래픽을 표시하는 순서
- beginPath()로 그리기 시작.
- 그 이전에 그렸던 패스는 모두 리셋된다.
- 그 이전에 그렸던 패스는 모두 리셋된다.
- 캔버스의 API를 이용하여 패스 그리기.
- 여기서 그린 패스는 아직 그래픽으로 표시되지 않음.
- 여기서 그린 패스는 아직 그래픽으로 표시되지 않음.
- 그래픽을 화면에 표시.
- stroke()
- 패스를 선으로 표현한다.
- 선의 스타일은 strokeStyle 속성으로 지정한다.
- 패스를 선으로 표현한다.
- fill()
- 패스 내부를 채운다.
- 호출시 패스가 닫히지 않았더라도 자동으로 닫힌 상태로 만든다.
- 내부 스타일은 fillStyle 속성으로 지정한다.
- 패스 내부를 채운다.
- clip()
- 패스의 내부를 클리핑 영역으로 지정한다.
- 클리핑 영역이 있는 상태에서 캔버스에 그려지는 그래픽은 클리핑 영역 안쪽에만 표시된다.
- beginPath()를 호출하여 클리핑 영역을 해제할 수 있다.
- (그림 삽입)
- 패스의 내부를 클리핑 영역으로 지정한다.
- stroke()
- beginPath()로 그리기 시작.