Я пытаюсь https://jsfiddle.net/natchiketa/xHYjz/ и моя функция:
function addtesst() {
var imgURL = 'http://i.imgur.com/8rmMZI3.jpg';
var pugImg = new Image();
pugImg.onload = function (img) {
var pug = new fabric.Image(pugImg, {
width: 800,
height: 1000,
left: 150,
top: 170,
scaleX: 0.41,
scaleY: 0.42
});
canvas.add(pug);
};
pugImg.src = imgURL;
}
и результат:
var imgURL = 'http://i.imgur.com/8rmMZI3.jpg';
var canvas = new fabric.Canvas('canvas');
var pugImg = new Image();
pugImg.onload = function (img) {
var pug = new fabric.Image(pugImg, {
angle: 45,
width: 500,
height: 500,
left: 50,
top: 70,
scaleX: .25,
scaleY: .25
});
canvas.add(pug);
};
pugImg.src = imgURL;
#canvas {
box-shadow: 0 0 5px 1px black;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.1.0/fabric.all.min.js"></script>
<canvas id="canvas" width="640" height="480"></canvas>
Как видите, мое фото не полное. Пожалуйста, помогите мне найти проблему. Спасибо.
Спасибо большое. Это работает, но когда я использовал scaleToWidth, тогда scaleToHeight не работал. Как они работают вместе?
вы должны использовать один или другой. Когда вы используете scaleToWidth, высота изображения изменится на правильную высоту для этого соотношения сторон, и наоборот с помощью scaleToHeight.
Я хочу использовать оба. Потому что моя цель - перерисовать изображение с заданной длиной и шириной. С нетерпением жду ответа от вас
Вам не нужно использовать оба, чтобы получить нужный размер. Просто используйте один из них, чтобы установить правильные значения
scaleX
иscaleY
. Затем просто отрегулируйте значениеheight
илиwidth
по мере необходимости.Спасибо за терпеливый ответ на мой вопрос. Я пытался следовать вашему ответу. Это правильно, но я имею в виду, что у меня есть ScaleX и ScaleY. После добавления изображения на холст (используется scaleToHeight и это правильно), но ширина будет переполняться шириной изображения. Я хочу, чтобы изображение всегда рисовалось в заданных масштабахX и Y , принимая изображение с искажением.
Если вы не возражаете против растяжения изображения, вы можете сделать что-то вроде этого. img.set('scaleX', требуемая ширина / ширина изображения)
Большое спасибо, Мельхиар, это то, что я искал. это сработало