2013-05-01 2 views
8

Я делаю фотогалерею, но все мои изображения окрашены в начало (0,0).Нарисуйте изображения в середине холста

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

Как я могу убедиться, что мои изображения нарисованы посередине на холсте?

Спасибо, что помогли мне!

UPDATE

я мог бы сформировали мой вопрос немного не так. Что я хочу сказать: я хочу, чтобы середина моего изображения была в середине моего холста, а не в верхнем углу изображения.

К сожалению для этого

Edit: опечатка

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

+0

@Mark это хороший ответ. вы можете помочь мне в этом http://stackoverflow.com/questions/17487277/rotating-2-images-on-canvas Спасибо заранее! – Beginner

1

Offset происхождение (что всегда 0,0 - верхний левый) по + (image.width/2) и + (image.height/2), чтобы начать рисовать в центре холста.

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

Это тоже сработало, но я неправильно сформулировал свой вопрос. Но мой вопрос уже решён. Благодаря! – Matt

3

Если вы хотите нарисовать его мертвым в центре, вам необходимо знать ширину и высоту изображения. Становится легко потом:

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

Это тоже сработало, но я неправильно сформулировал свой вопрос. Но мой вопрос уже решён. Thanks – Matt

 Смежные вопросы

  • Нет связанных вопросов^_^