"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 내 캔버스 이미지가 그려지지 않는 이유는 무엇입니까? 비동기 이미지 로딩의 중요성.

내 캔버스 이미지가 그려지지 않는 이유는 무엇입니까? 비동기 이미지 로딩의 중요성.

2024-11-08에 게시됨
검색:349

Why Does My Canvas Image Not Draw? The Importance of Asynchronous Image Loading.

그리기 전 이미지 로드 대기

캔버스에 이미지를 추가하려고 할 때 먼저 이미지가 로드되었는지 확인하는 것이 중요합니다. 그것을 그려보려고 합니다. 코드에서 발생한 문제는 이미지 로딩의 비동기 특성으로 인해 발생합니다.

이 문제를 해결하려면 이미지의 onload 이벤트에 콜백 함수를 추가해야 합니다. 이 콜백 함수는 이미지 로드가 완료되면 실행되어 이미지를 그리기 전에 이미지 데이터를 사용할 수 있는지 확인합니다.

아래 수정된 코드는 이미지를 캔버스에 그리기 전에 이미지가 로드될 때까지 기다립니다. :

var canvas = document.getElementById('viewport'),
    context = canvas.getContext('2d');

make_base();

function make_base() {
  base_image = new Image();
  base_image.src = 'img/base.png';
  base_image.onload = function() {
    context.drawImage(base_image, 100, 100);
  };
}
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3