Я хотел бы предложить вам использовать easyCanvas library для этого. Причина этого заключается в том, что встроенный метод drawImage
контекста не масштабирует изображение пропорционально для вас, и он предполагает небольшую дозу математики, чтобы получить ее право, особенно в тех случаях, когда форма назначения отличается от оригинала, и вы хотите, чтобы она охватывают всю площадь.
Я сделал метод в этой библиотеке, чтобы обрабатывать ситуации, подобные этим, позволяя пропорционально рисовать исходное изображение в любую форму, даже если форма не соответствует оригиналу.
См. Это demo for an live example.
В сущности, что вы делаете, чтобы привлечь ваше загруженное изображение в холст с помощью этого метода:
ez.drawImageProp(image, x, y, width, height);
, где ширина и высота будет то, что место назначения.
Это также смещение параметров, так что вы можете переместить изображение вокруг в пределах этой формы, где смещение 0,5 центры, 0 находится слева и 1 справа:
ez.drawImageProp(image, x, y, width, height, offsetX, offsetY);
Предполагая, что изображение уже доступно все вам нужно сделать, это:
var ez = new easyCanvas('canvas'); /// provide ID of existing canvas
ez.drawImageProp(image, 0, 0, ez.width, ez.height);
Отказ от ответственности: Я являюсь автором easyCanvas. easyCanvas является открытым исходным кодом (лицензия GPL3.0).
Почему нужно быть на холсте ?, не можете установить в div, где вы указываете, содержать или обложку, или 100% авто?, пожалуйста, покажите некоторый код, потому что ваш вопрос не говорит даже в том, что язык должен быть выполнен. –
@SantiagoRebella. Я хотел бы показать некоторый код, только проблема в том, что я нахожусь в стадии, когда мне нужно выяснить, как начать. –