본문 바로가기
개발(Development)/HTML Canvas(캔버스)

HTML Canvas(캔버스) 텍스트 그리기 방법: fillText, strokeText

by 카레유 2021. 6. 4.

# canvas에 텍스트(글자) 쓰기

1. 글자 색 설정

 ctx.fillStyle = "색상"; 

 

2. 폰트 설정

 ctx.font = "스타일 굵기 크기 서체" 

1) 스타일: normal(디폴트)|italic|oblique

2) 굵기: normal(디폴트)|bold|bolder|lighter

3) 크기: 숫자px(디폴트 10px)

4) 서체: sans-serif(디폴트)|Arial ...

* 미지정시 ctx.font = "10px sans-serif" 디폴트 적용됨

 

3. 텍스트 정렬

1) 좌우정렬:  ctx.textAlign = "start(디폴트)|end|center|left|right"; 

2) 상하정렬:  ctx.textBaseline= "alphabetic(디폴트)|top|hanging|middle|ideographic|bottom"; 

 

4. 텍스트 그리기

 ctx.fillText("텍스트", x좌표, y좌표, 최대 너비) 

* 최대 너비만큼 텍스트 너비가 줄어든다.(생략시, 텍스트 길이만큼 표시)

 

5. 텍스트 외곽선 그리기 

 ctx.stokeText("텍스트", x좌표, y좌표, 최대 너비) 

* 외곽선의 색은 ctx.strokeStyle = "색상"; 으로 지정

 

# 샘플 예제 코드

캔버스에 다양한 스타일의 테스트를 그려보는 예제

<!DOCTYPE html>
<html lang="en">
<head>
</head>

 <body>

     <!-- HTML -->
     <!-- 1. canvas 엘리먼트를 선언한다: id, widht, height를 태그 내에서 지정해준다. -->
    <canvas id="myCanvas" width="400" height="300"></canvas>
    

    <!-- Javascript -->
    <script>
        // 1. canvas 엘리먼트를 취득한다.
        const canvas = document.getElementById('myCanvas');

        // 2. 2d모드의 그리기 객체를 취득한다. => 이 객체를 통해 canvas에 그림을 그릴 수 있다.
        const ctx = canvas.getContext("2d");

        // 3-1. 텍스트 그리기(기본)
        ctx.fillText("1. 캔버스에 텍스트를 씁니다.", 10, 10);

        // 3-2. 텍스트 그리기(최대 너비 지정)
        ctx.fillText("2. 캔버스에 텍스트를 씁니다.", 10, 30, 50);
        
        // 3-3. 텍스트 폰트 설정
        ctx.font = "italic bold 20px Arial, sans-serif"; //Arial서체 없을 경우, sans-serif 적용
        ctx.fillText("3. 캔버스에 텍스트를 씁니다.", 10, 60);

        // 3-4. 텍스트 색상 설정
        ctx.fillStyle = 'blue';
        ctx.fillText("4. 캔버스에 텍스트를 씁니다.", 10, 90);

        // 3-5. 텍스트 외곽선 그리기
        ctx.strokeStyle = 'red';
        ctx.strokeText("5. 캔버스에 텍스트를 씁니다.", 10, 120);

        // 3-6. 텍스트+외곽선 그리기
        ctx.fillText("6. 캔버스에 텍스트를 씁니다.", 10, 150);
        ctx.strokeText("6. 캔버스에 텍스트를 씁니다.", 10, 150);

        // 3.7. 가운데 정렬 텍스트
        ctx.textAlign = "center";
        ctx.fillText("7. 캔버스에 텍스트를 씁니다.", 200, 180);

    </script>
    
</body>
</html>

<결과물>

 

캔버스 기초는 아래글 참고

HTML Canvas(캔버스) 기초: 기본 사용 방법 & 샘플 예제 코드

댓글