2013-05-01 192 views
8

我正在製作照相館,但所有圖像都繪製在原點(0,0)上。在畫布中間繪製圖像

canvasContent.drawImage(arrPhoto[currentIndex], 0, 0); 

我怎樣才能確保我的圖像繪製在畫布對象的中間?

感謝您的幫助!

UPDATE

我可能已經形成了我的問題有點不對勁。 我的意思是:我希望我的圖像中間位於畫布中間,而不是圖像的頂角。

對不起爲

編輯:錯字

EDIT2:錯字

回答

22

如果提供了x, y位置,像這樣:

var image = arrPhoto[currentIndex]; 
canvasContent.drawImage(image, 
     canvas.width/2 - image.width/2, 
     canvas.height/2 - image.height/2 
); 

那麼它應該出現在中心。這個實例的一個例子是:http://jsfiddle.net/VPLZc/2/

+0

太棒了,解決了它! 謝謝你 – Matt 2013-05-01 12:32:14

+0

@馬克這是很好的答案。你能幫我在這個http://stackoverflow.com/questions/17487277/rotating-2-images-on-canvas 在此先感謝:) – Beginner 2013-07-05 12:17:16

1

偏移原點(這始終是0,0 - 左上)由+ (image.width/2)+ (image.height/2)開始在中心抽選的畫布。

drawImage(image, image.width/2, image.height/2) 
+0

這也行得通,但我錯誤地表達了我的問題。但我的問題已經解決了。謝謝! – Matt 2013-05-01 12:33:11

3

如果你想把它畫到中心,你需要知道圖像的寬度和高度。它成爲繼易:

//var canvas = document.getElementById("yourCanvasElementID"); 
var img = arrPhoto[currentIndex]; 
canvasContent.drawImage(img, (canvas.width-img.width)/2, (canvas.height-img.height)/2); 
+0

這也行得通,但我錯誤地表達了我的問題。但我的問題已經解決了。謝謝 – Matt 2013-05-01 12:34:07