HTML5 캔버스 텍스트의 스타일을 굵게 및 / 또는 기울임 꼴로 어떻게 지정합니까?


85

캔버스에 텍스트를 매우 간단하게 인쇄하고 있습니다.

var ctx = canvas.getContext('2d');
ctx.font = "10pt Courier";
ctx.fillText("Hello World", 100, 100);

하지만 텍스트를 굵게, 기울임 꼴 또는 둘 다로 변경하려면 어떻게해야합니까? 이 간단한 예를 수정하기위한 제안이 있습니까?

답변:


157

다음 중 하나를 사용할 수 있습니다.

ctx.font = "italic 10pt Courier";

ctx.font = "bold 10pt Courier";

ctx.font = "italic bold 10pt Courier";

자세한 내용은 다음 두 가지 리소스를 참조하십시오.


2
Arg가 저를 이겼습니다. +1 더 많은 정보를위한 훌륭한 사이트, diveintohtml5.org/canvas.html#divingin
Loktar

@Loktar 링크를 주셔서 감사합니다.
Donut 2011 년


4
글꼴 두께를 지정할 수도 있습니다.ctx.font = "400 10pt Courier"
Ivan P

을 통한 글꼴 두께 ctx.font = "400 10pt Open Sans"가 최신 브라우저 버전의 Calibri 또는 Open Sans를 사용하는 Chrome에서 작동하지 않았습니다
sean2078

12

이 문제를 우연히 발견 한 사람에게는 추가로 알려드립니다. 수락 된 답변에 표시된 순서를 따르십시오.

주문이 잘못되었을 때 브라우저 간 문제가 발생했습니다. "10px Verdana bold"는 Chrome에서 작동하지만 IE 나 Firefox에서는 작동하지 않습니다. 표시된대로 "bold 10px Verdana"로 전환하면 이러한 문제가 해결되었습니다. 비슷한 문제가 발생하면 주문을 다시 확인하십시오.


Chrome이 Firefox와 인라인되도록 변경된 것 같습니다. 이 펜을 참조하십시오 : codepen.io/anon/pen/BXNZxO
ecc521 19

2

따라서 하나의 JS 명령에 설정 font-weight( font-size또는 font-family...) 할 방법이 없습니까? 모두 하나의 완전한 글꼴 문자열에 있어야합니까?



0

서식 변경을 허용해야하는 경우 글꼴 스타일을 설정하고 텍스트를 measureText그리고를 사용하여 측정 하고 새 스타일을 설정 한 다음 다음과 같이 다음 블록을 그릴 수 있습니다.

// get canvas / context
var can = document.getElementById('my-canvas');
var ctx = can.getContext('2d')

// draw first text
var text = '99%';
ctx.font = 'bold 12pt Courier';
ctx.fillText(text, 50, 50);

// measure text
var textWidth = ctx.measureText(text).width;

// draw second text
ctx.font = 'normal 12pt Courier';
ctx.fillText(' invisible', 50 + textWidth, 50);
<canvas id="my-canvas" width="250" height="150"></canvas>

추가 읽기

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.