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", ...): 버튼 클릭 시점에 이미지가 그려지도록 이벤트를 등록합니다.
실행 결과
페이지를 열면 원본 이미지와 빈 캔버스가 나란히 표시됩니다.

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