2013-05-01 17 views
8

Robię galerię zdjęć, ale wszystkie moje obrazy są malowane w miejscu pochodzenia (0,0).Rysuj obrazy na środku płótna

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

Jak mogę się upewnić, że moje obrazy są rysowane pośrodku na obiekcie płótna?

Dzięki za pomoc!

UPDATE

mógłbym tworzą moje pytanie trochę źle. Mam na myśli: chcę, aby środek mojego obrazu znajdował się pośrodku mojego płótna, a nie w górnym rogu obrazu.

Niestety do tej

EDIT: typo

Edit2: typo

Odpowiedz

22

Jeśli podasz położenie x, y tak:

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

to powinno pojawić się w środku. Przykład tego działania znajduje się pod adresem: http://jsfiddle.net/VPLZc/2/.

+0

Świetnie, że to rozwiązało! Dzięki człowiek – Matt

+0

@ Mark to fajna odpowiedź. czy możesz mi pomóc w tym http://stackoverflow.com/questions/17487277/rotating-2-images-on-canvas Z góry dziękuję :) – Beginner

1

zrównoważyć pochodzenie (co jest zawsze 0,0 - w górę w lewo) przez + (image.width/2) i + (image.height/2) aby rozpocząć rysowanie w centrum płótna.

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

To też zadziałało, ale źle sformulowałem moje pytanie. Ale moje pytanie zostało już rozwiązane. Dzięki! – Matt

3

Jeśli chcesz go narysować na środku, musisz znać szerokość i wysokość obrazu. Potem staje się łatwe:

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

To też zadziałało, ale źle sformulowałem moje pytanie. Ale moje pytanie zostało już rozwiązane. Dzięki – Matt