jiraynor’s 하루 2시간 프로그래밍 - HTML 41. 캔버스 (Canvas) 영상 보러가기
HTML canvas 그래픽
HTML <canvas>
요소는 웹 페이지에 그래픽을 그리기 위해 사용됩니다.
빨간색 직사각형, 그라데이션 직사각형, 다색 직사각형 및 다색 텍스트의 네 가지 요소가 표시됩니다.
HTML canvas란?
HTML <canvas>
요소는 JavaScript를 통해 그래픽을 즉시 그리기 위해 사용됩니다.
<canvas>
요소는 그래픽용 컨테이너일 뿐입니다. 실제로 그래픽을 그리려면 JavaScript를 사용해야 합니다.
캔버스에는 경로, 상자, 원, 텍스트 및 이미지 추가를 위한 여러 가지 방법이 있습니다.
지원하는 브라우저
표의 숫자는 <canvas>
요소를 완전히 지원하는 최소 브라우저 버전을 나타냅니다.
브라우저 | 구글 Chrome | 마이크로소프트 Edge | Firefox | Safari | Opera |
버전 | 4.0 | 9.0 | 2.0 | 3.1 | 9.0 |
Canvas 예제
캔버스는 HTML 페이지의 직사각형 영역입니다. 기본적으로 캔버스에는 테두리와 내용이 없습니다.
코드는 다음과 같습니다.
<canvas id="myCanvas" width="200" height="100"></canvas>
Note: 항상 id
속성(스크립트에서 참조)과 width
및 height
속성을 지정하여 캔버스의 크기를 정의하십시오. 테두리를 추가하려면 style
속성을 사용합니다.
다음은 기본적인 빈 캔버스의 예를 나타냅니다.
예제 1
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">
</canvas>
Javascript 추가
직사각형 캔버스 영역을 작성한 후 그림을 그릴 JavaScript를 추가해야 합니다.
다음은 몇 가지 예입니다.
선 그리기
예제 2
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.moveTo(0, 0);
ctx.lineTo(200, 100);
ctx.stroke();
</script>
원 그리기
예제 3
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.beginPath();
ctx.arc(95, 50, 40, 0, 2 * Math.PI);
ctx.stroke();
</script>
텍스트 그리기
예제 4
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.font = "30px Arial";
ctx.fillText("Hello World", 10, 50);
</script>
스트로크 텍스트
예제 5
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.font = "30px Arial";
ctx.strokeText("Hello World", 10, 50);
</script>
선형 그라데이션 그리기
예제 6
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
// 그라데이션 생성
var grd = ctx.createLinearGradient(0, 0, 200, 0);
grd.addColorStop(0, "red");
grd.addColorStop(1, "white");
// 그라데이션 채우기
ctx.fillStyle = grd;
ctx.fillRect(10, 10, 150, 80);
</script>
원형 그라데이션 그리기
예제 7
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
// 그라데이션 생성
var grd = ctx.createRadialGradient(75, 50, 5, 90, 60, 100);
grd.addColorStop(0, "red");
grd.addColorStop(1, "white");
// 그라데이션 채우기
ctx.fillStyle = grd;
ctx.fillRect(10, 10, 150, 80);
</script>
예제 8 - 이미지 그리기
<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("scream");
ctx.drawImage(img, 10, 10);
</script>