Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 캔버스(Canvas)에 이미지 그리기 – drawImage() 완벽 가이드

HTML5 캔버스에 이미지를 그리려면 JavaScript의 drawImage() 메서드를 사용하면 됩니다. 이 메서드는 <img> 요소나 다른 캔버스를 소스로 받아 지정한 좌표에 이미지를 렌더링해 줍니다.

아래 예제에서는 버튼을 클릭하면 화면에 표시된 꽃 이미지가 캔버스 위에 그려지도록 구현했습니다.

예제 코드

<DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
    body {
        font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    }
</style>
</head>
<body>
<h1>캔버스에 이미지 그리기</h1>
<img class="flower" width="300" height="300"
    src="https://i.picsum.photos/id/976/300/300.jpg?hmac=Gwae8T0kvhjbWyNIAiYgOckWbK
BHGr2p_6EEE29uDDg" />
<canvas class="canvas1" width="300" height="300" style="border: 1px solid #d3d3d3;">
</canvas><br />
<button class="Btn">여기를 클릭하세요</button>
<h3>위 버튼을 클릭하면 캔버스에 이미지가 그려집니다</h3>
<script>
    let resEle = document.querySelector(".result");
    let BtnEle = document.querySelector(".Btn");
    BtnEle.addEventListener("click", () => {
        var c = document.querySelector(".canvas1");
        var ctx = c.getContext("2d");
        var img = document.querySelector(".flower");
        ctx.drawImage(img, 10, 10);
    });
</script>
</body>
</html>

코드 핵심 포인트

  • getContext("2d"): 캔버스의 2D 드로잉 컨텍스트를 가져와 그리기 작업을 시작할 수 있게 합니다.
  • drawImage(img, 10, 10): 첫 번째 인자는 그릴 이미지 객체이며, 두 번째와 세 번째 인자는 캔버스 내에서 이미지가 배치될 x, y 좌표입니다.
  • addEventListener("click", ...): 버튼 클릭 시점에 이미지가 그려지도록 이벤트를 등록합니다.

실행 결과

페이지를 열면 원본 이미지와 빈 캔버스가 나란히 표시됩니다.

JavaScript로 캔버스(Canvas)에 이미지 그리기 – drawImage() 완벽 가이드

'여기를 클릭하세요' 버튼을 누르면 다음과 같이 캔버스 안에 이미지가 그려집니다.

JavaScript로 캔버스(Canvas)에 이미지 그리기 – drawImage() 완벽 가이드