답변:
canvas
DOM 요소는이 .height
와 .width
받는 속성이 대응을 height="…"
하고 width="…"
속성. 캔버스 크기를 조정하려면 JavaScript 코드에서 숫자 값으로 설정하십시오. 예를 들면 다음과 같습니다.
var canvas = document.getElementsByTagName('canvas')[0];
canvas.width = 800;
canvas.height = 600;
캔버스를 ctx.clearRect( 0, 0, ctx.canvas.width, ctx.canvas.height);
지우지 만 캔버스를 완전히 지우지 않은 브라우저를 처리 해야합니다 . 크기 변경 후 표시하려는 컨텐츠를 다시 그려야합니다.
높이와 폭을 그리기 위해 사용 된 논리 캔버스 치수이며 것을 더 유의 다른 로부터 style.height
및 style.width
CSS 속성. CSS 속성을 설정하지 않으면 캔버스의 고유 크기가 표시 크기로 사용됩니다. CSS 속성을 설정했는데 캔버스 크기와 다른 경우 브라우저에서 컨텐츠의 크기가 조정됩니다. 예를 들면 다음과 같습니다.
// Make a canvas that has a blurry pixelated zoom-in
// with each canvas pixel drawn showing as roughly 2x2 on screen
canvas.width = 400;
canvas.height = 300;
canvas.style.width = '800px';
canvas.style.height = '600px';
4 배 확대 된 캔버스 의이 라이브 예제 를 참조하십시오 .
캔버스는 2 개의 크기, 캔버스의 픽셀 크기 (backingstore 또는 drawingBuffer)와 표시 크기를 갖습니다. 픽셀 수는 캔버스 속성을 사용하여 설정됩니다. HTML에서
<canvas width="400" height="300"></canvas>
또는 JavaScript
someCanvasElement.width = 400;
someCanvasElement.height = 300;
그것과 별개로 캔버스의 CSS 스타일 너비와 높이
CSS에서
canvas { /* or some other selector */
width: 500px;
height: 400px;
}
또는 JavaScript
canvas.style.width = "500px";
canvas.style.height = "400px";
캔버스를 1x1 픽셀로 만드는 가장 좋은 방법은 항상 CSS 를 사용 하여 크기를 선택한 다음 약간의 JavaScript를 작성하여 픽셀 수가 해당 크기와 일치하도록하는 것입니다.
function resizeCanvasToDisplaySize(canvas) {
// look up the size the canvas is being displayed
const width = canvas.clientWidth;
const height = canvas.clientHeight;
// If it's resolution does not match change it
if (canvas.width !== width || canvas.height !== height) {
canvas.width = width;
canvas.height = height;
return true;
}
return false;
}
이것이 가장 좋은 방법은 무엇입니까? 대부분의 경우 코드를 변경하지 않고도 작동하기 때문입니다.
속성을 설정하지 않았기 때문에 각 샘플에서 변경된 유일한 것은 CSS입니다 (캔버스에 관한 한)
노트:
대단히 감사합니다! 마지막 으로이 코드로 흐리게 픽셀 문제를 해결했습니다.
<canvas id="graph" width=326 height=240 style='width:326px;height:240px'></canvas>
'반 화소'를 추가하면 선을 흐릿하게 만들 수 있습니다.
$('#mycanvas').attr({width:400,height:300}).css({width:'800px',height:'600px'});
하려면 : 시각적 크기를 픽셀 크기와 동일하게하려면 스타일 만 설정하고 속성 만 설정하지 마십시오.