* 텍스트 그리기

- 텍스트의 외곽선만 그리기 : strokeText();

- 외곽선 없이 텍스트 내부 채워 그리기 : fillText();


1
2
3
4
5
strokeText(text, x, y, maxWidth)
fillText(text, x, y, maxWidth)
text : 출력하고자 하는 문자열 텍스트
x, y : 텍스트가 출력되는 시작 점 (x, y)
maxWidth : 텍스트가 출력되는 최대 폭. text가 이 값보다 크면 자동으로 다른 폰트로 대체됨
cs
strokeText()는 strokeStyle 색으로 (x,y) 위치에 text의 외곽선만 그리며,
fillText()는 외곽선없이 텍스트 내부를 fillStyle 색으로 칠한다.

* 텍스트 외곽선 그리기
strokeText()는 컨텍스트의 strokeStyle과 lineWidth에 지정된 값으로 텍스트의 외곽선을 그린다.
다음 코드는 (30,100) 위치에 "Javascript" 외곽선을 1픽셀 blue 색으로 그린다

1
2
3
context.strokeStyle = "blue"; // 외곽선 색
context.lineWidth = 1; // 외곽선 굵기 1 픽셀
context.strokeText("Javascript", 30, 100);
cs



* 텍스트 채워 그리기
fillText()는 strokeStyle과 lineWidth를 무시하고 fillStyle 값만 반영하여 텍스트 내부를 채워 그린다.

1
2
context.fillStyle = "green"; // 채우기 색
context.fillText("Javascript",30,200);

cs



* 폰트
텍스트의 폰트는 font 프로퍼티로 지정하며 디폴트는 10px의 sans-serif이다.
font 프로퍼티에는 CSS3 스타일 시트와 동일한 문법이 사용된다.

1
2
3
context.font = "20px arial"; // 20픽셀의 보통 스타일, arial 서체
context.font = "italic 20px arial"; // 20픽셀의 이탤릭 스타일, arial 서체
 
cs

* 정렬
textAlign 프로퍼티에 "left"(디폴트), "right", "center", "start", "end" 중 한 값을 지정하여 텍스트의 출력 위치를 지정할 수 있다.
1
2
context.textAlign = "right"; // 오른쪽정렬
context.strokeText("Javascript",100,10); // 정렬의 기준점 (100,10)
cs

예제 11-8. 텍스트 그리기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>텍스트 그리기</title></head>
<body>
<h3>텍스트 그리기</h3>
<hr>
<canvas id="myCanvas" style="background-color:aliceblue"
     width="500" height="400"></canvas>
<script>
    var canvas = document.getElementById("myCanvas");
    var context = canvas.getContext("2d");
    context.strokeStyle = "blue";
 
    // font 프로퍼티 활용
    for(var i=0; i<4; i++) {
        context.font = (10 + i*10+ "px forte";
        context.strokeText("Javascript 재밌다."1030+i*50);
    }
 
    // 텍스트 외곽선 그리기
    context.font = "italic 50px forte";
    context.strokeStyle = "magenta";
    context.lineWidth = 3;
    context.textAlign = "left";
    context.strokeText("Javascript 재밌다."50250);
 
    // 텍스트 채워 그리기
    context.fillStyle = "green";
    context.textAlign = "right";
    context.fillText("Javascript 재밌다."490300);
</script>
</body>
</html>
 
cs





Posted by 너래쟁이
: