2013-09-28 7 views
0

이미지 자르기를 그려서 캔버스에 그려 넣으 려하지만 브라우저에서 실행하면 캔버스가 흰색으로 남아 있습니다. 오류가 나타나지 않습니다.drawImage not drawing

var imgSprite = new Image(); 
imgSprite.src = 'sprite.png'; 
imgSprite.addEventListener('load', init, false); 

function init(){ 
    drawBg(); 

} 
function drawBg() { 
    var sourceX =0; 
    var sourceY =0; 
    var sourceWidth =800; 
    var sourceHeight =500; 
    var destWidth =800; 
    var destHeight =500; 
    var destX =0; 
    var destY =0; 
    //ctxBg.clearRect(0, 0, gameWidth, gameHeight); 
    ctxBg.drawImage(imgSprite, sourceX,sourceY,sourceWidth,sourceHeight, 
     destWidth,destHeight,destX,destY); 
} 
+0

TypeError의 라인은 무엇입니까? –

답변

1

마지막 네 개의 매개 변수가 잘못된 순서에 있습니다. 다음과 같아야합니다.

ctxBg.drawImage(imgSprite, sourceX,sourceY,sourceWidth,sourceHeight, 
     destX,destY,destWidth,destHeight); // x,y before width,height 

모든 오버로드 및 대화 형 예제는 을 참조하십시오.

1

귀하의 파라미터 세트는 drawImage()

ctxBg.drawImage(imgSprite, 0, 0, gameWidth, gameHeight); 

데모에 사용 가능한 매개 변수 세트 중 하나를 일치하지 않습니다 :의 drawImage에 Fiddle

+0

drawImage를 사용하기 위해 w3으로 설정된 매개 변수를 따르고 있습니다. 코드 끝의 추가 0,0 매개 변수가 프로그램에 캔버스 0,0에서 그리기를 시작한다고 알았습니다. 필자는 스프라이트 시트의 일부를 잘라 내 스프라이트 시트의 해당 부분 만 캔버스에 그려 넣으려고합니다. 어떻게해야합니까? – rrcm

+0

@rrcm 사용하려는 이미지의 시작 좌표는 무엇입니까 –

+0

@rrcm 자르기 방법은 [이 예제] (http://www.html5canvastutorials.com/tutorials/html5-canvas-image-crop/)를 참조하십시오. 이미지 –