HTML DOM 캔버스 객체
<canvas> 요소는 HTML 페이지에서 비트맵 영역을 정의합니다.
Canvas API는 JavaScript가 화면에 그림을 그릴 수 있게 합니다.
Canvas API는 형상, 선, 곡선, 사각형, 텍스트 및 이미지, 그리고 색상, 회전, 투명도 및 다른 픽셀 작업을 그릴 수 있습니다.
Canvas를 HTML에 추가하다
HTML 페이지의 어디서든 <canvas> 요소를 추가할 수 있는 <canvas> 태그를 사용할 수 있습니다:
인스턴스
<canvas id="myCanvas" width="300" height="150"></canvas>
Canvas 요소에 접근하는 방법
HTML DOM 메서드 getElementById()를 사용하여 <canvas> 요소에 접근할 수 있습니다:
const myCanvas = document.getElementById("myCanvas");
캔버스에서 그리기 위해 2D 컨텍스트 객체를 생성해야 합니다:
const ctx = myCanvas.getContext("2d");
메모
HTML <canvas> 요소는 그래픽 그리기 기능을 갖추고 있지 않습니다.
그래픽을 그리기 위해 JavaScript를 사용해야 합니다.
getContext() 메서드는 그리기 도구(메서드)가 포함된 객체를 반환합니다.
캔버스에서 그리기
2D 컨텍스트 객체를 생성한 후, 캔버스에서 그림을 그릴 수 있습니다.
아래의 fillRect() 메서드는 왼쪽 상단 위치 20,20에 위치하는 150픽셀 너비, 100픽셀 높이의 검은색 사각형을 그립니다:
인스턴스
const myCanvas = document.getElementById("myCanvas"); const ctx = myCanvas.getContext("2d"); ctx.fillRect(20, 20, 150, 100);
색상 사용
fillStyle 속성은 그리기 객체의 채우기 색상을 설정합니다:
인스턴스
const myCanvas = document.getElementById("myCanvas"); const ctx = myCanvas.getContext("2d"); ctx.fillStyle = "red"; ctx.fillRect(20, 20, 150, 100);
또한 document.createElement() 메서드를 사용하여 새로운 <canvas> 요소를 생성하고, 해당 요소를 기존 HTML 페이지에 추가할 수 있습니다:
인스턴스
const myCanvas = document.createElement("canvas"); document.body.appendChild(myCanvas); const ctx = myCanvas.getContext("2d"); ctx.fillStyle = "red"; ctx.fillRect(20, 20, 150, 100);
경로
캔버스에서 그리기의 일반적인 방법은 다음과 같습니다:
- 경로 시작 - beginPath()
- 어느 점으로 이동 - moveTo()
- 경로에 그리기 - lineTo()
- 경로 그리기 - stroke()
인스턴스
const canvas = document.getElementById("myCanvas"); const ctx = canvas.getContext("2d"); ctx.beginPath(); ctx.moveTo(20, 20); ctx.lineTo(20, 100); ctx.lineTo(70, 100); ctx.stroke();
색상, 스타일, 그림자
속성 | 설명 |
---|---|
fillStyle | 채우기를 위한 색상, 변화된 색상 또는 패턴을 설정하거나 반환합니다. |
strokeStyle | 선 긋기, 변화된 색상 또는 패턴을 위한 색상을 설정하거나 반환합니다. |
shadowColor | 그림자를 위한 색상을 설정하거나 반환합니다. |
shadowBlur | 그림의 그림자를 흐림 정도를 설정하거나 반환합니다. |
shadowOffsetX | 그림자가 형상으로부터의 수평 거리를 설정하거나 반환합니다. |
shadowOffsetY | 그림자가 형상으로부터의 수직 거리를 설정하거나 반환합니다. |
메서드 | 설명 |
---|---|
createLinearGradient() | 선형 그레이드렌트를 생성합니다(캔버스 내용에 사용됩니다). |
createPattern() | 지정된 방향에서 지정된 요소를 반복합니다. |
createRadialGradient() | 원형/둥근 그레이드렌트를 생성합니다(캔버스 내용에 사용됩니다). |
addColorStop() | 그레이드렌트 객체 내의 색상과 중지 위치를 지정합니다. |
선 스타일
속성 | 설명 |
---|---|
lineCap | 선의 끝盖 스타일을 설정하거나 반환합니다. |
lineJoin | 두 선이 교차할 때 생성되는角的 유형을 설정하거나 반환합니다. |
lineWidth | 현재 선 너비를 설정하거나 반환합니다. |
miterLimit | 최대 기울기 길이를 설정하거나 반환합니다. |
다각형
메서드 | 설명 |
---|---|
rect() | 다각형을 생성합니다. |
fillRect() | 填充된 다각형을 그립니다. |
strokeRect() | 填充이 없는 다각형을 그립니다. |
clearRect() | 지정된 다각형 내의 지정된 픽셀을 지우습니다. |
경로
메서드 | 설명 |
---|---|
fill() | 현재 그래픽(경로)을 채웁니다. |
stroke() | 정의한 경로를 실제로 그립니다. |
beginPath() | 경로를 시작하거나 현재 경로를 초기화합니다. |
moveTo() | 경로를 캔버스의 지정된 점으로 이동시키고, 선을 생성하지 않습니다. |
closePath() | 현재 점에서 출발점으로 이르는 경로를 생성합니다. |
lineTo() | 새로운 점을 추가하고, 그 점에서 캔버스의 마지막 지정된 점까지의 선을 생성합니다. |
clip() | 원래 캔버스에서 임의의 형상과 크기의 영역을 잘라냅니다. |
quadraticCurveTo() | 두차 베塞尔 곡선을 생성합니다. |
bezierCurveTo() | 삼차 베塞尔 곡선을 생성합니다. |
arc() | 원형/곡선을 생성합니다(원 또는 원의 일부를 생성하는 데 사용됩니다). |
arcTo() | 두 베이스 라인 사이에 원형/곡선을 생성합니다. |
isPointInPath() | 지정된 점이 현재 경로에 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. |
변환
메서드 | 설명 |
---|---|
scale() | 현재 그래픽을 확대하거나 축소합니다. |
rotate() | 현재 그래픽을 회전시킵니다. |
translate() | 캔버스 상의 (0,0) 위치를 재映射합니다. |
transform() | 그리기의 현재 변환 행렬을 대체합니다. |
setTransform() | 현재 변환을 단위 행렬로 초기화한 후 실행합니다. transform()。 |
텍스트
속성 | 설명 |
---|---|
font | 텍스트 콘텐츠의 현재 폰트 속성을 설정하거나 반환합니다. |
textAlign | 텍스트 콘텐츠의 현재 정렬 방식을 설정하거나 반환합니다. |
textBaseline | 텍스트 그리기 시 사용하는 현재 텍스트 기준선을 설정하거나 반환합니다. |
메서드 | 설명 |
---|---|
fillText() | 캔버스에 '填充' 텍스트를 그립니다. |
strokeText() | 캔버스에 텍스트를 그립니다(배색 없음). |
measureText() | 지정된 텍스트 너비를 포함한 객체를 반환합니다. |
이미지 그리기
메서드 | 설명 |
---|---|
drawImage() | 이미지, 캔버스 또는 비디오를 캔버스에 그립니다. |
픽셀 작업
속성 | 설명 |
---|---|
width | ImageData 객체의 너비를 반환합니다. |
height | ImageData 객체의 높이를 반환합니다. |
data | 지정된 ImageData 객체의 이미지 데이터를 포함한 객체를 반환합니다. |
메서드 | 설명 |
---|---|
createImageData() | 새로운 비어 있는 ImageData 객체를 생성합니다. |
getImageData() | 캔버스에서 지정된 사각형의 픽셀 데이터를 복사한 ImageData 객체를 반환합니다. |
putImageData() | 이미지 데이터(지정된 ImageData 객체에서)를 캔버스에 다시 넣습니다. |
합성
속성 | 설명 |
---|---|
globalAlpha | 그리는 현재 alpha 또는 투명도 값을 설정하거나 반환합니다. |
globalCompositeOperation | 신규 이미지를 기존 이미지에 그리는 방법을 설정하거나 반환합니다. |
기타
메서드 | 설명 |
---|---|
save() | 현재 컨텍스트 상태를 저장합니다. |
restore() | 이전에 저장된 경로 상태와 속성을 반환합니다. |
createEvent() | |
getContext() | |
toDataURL() |