2014-09-28 1 views
0

scale() 메서드를 사용하여 이미지를 뒤집으려고합니다. 이 코드를 가지고 :Javascript 음수 매개 변수가있는 Canvas에서 Scale (x, y) 메서드가 작동하지 않습니다.

ctx.save(); 
ctx.scale(-1, 1); 

ctx.drawImage(Img, 0, 0, 100, 100); 

ctx.restore(); 
내가 규모 매개 변수로 1, 1을 넣어

, 또는 다른 어떤 실수, 스케일 기능은 잘 작동합니다. 그러나 -1과 같은 음수 매개 변수를 설정하면 (이미지를 수평으로 뒤집기 위해) 이미지가 전혀 그려지지 않습니다. 이 코드는 12fps setInterval 함수에 있습니다. 나는 어디에서나 보았지만 해결책을 찾을 수없는 것 같습니다. 어떤 도움이나 제안을 주시면 감사하겠습니다. 감사!

+1

http://jsfiddle.net/yong/ZJQX5/ :) –

+0

반전 된 이미지가 캔버스에서 그려집니다. 이미지가 캔버스 위로 되돌아 가도록 drawImage의 x, y를 재설정합니다. – markE

+1

아, 그래서 이미지 좌표가 음수 치수로 옮겨졌습니다 : O 지금은 매력처럼 작동합니다, 정말 고마워요! –

답변

0

은 markE로 말한 것과 같이 캔버스 크기를 조절하거나 회전하거나 변형 할 때마다 사용중인 좌표가 캔바스 변환의 변화에 ​​반응합니다 (캔버스에서 이미지를 보내는 경우). 장소의 이미지를 반전하려면 첫 번째 매개 변수로 이미지의 폭과 번역의 사용을 고려해야합니다 :

ctx.save(); 
 

 
//The scale will flip the whole canvas, and will move the image 
 
//to the left (by the image width size) 
 
ctx.scale(-1, 1); 
 

 
//Using translate to move the image back to it's original origin 
 
ctx.translate(Img.width, 0) 
 

 
ctx.drawImage(Img, 0, 0, 100, 100); 
 

 
ctx.restore();

ctx.restore();

관련 문제