Моей первой задачей было подогнать изображение <= высота холста, и я использовал следующий код .. </p>
var canvas = ctx.canvas ;
var hRatio = canvas.width / img.width ;
var vRatio = canvas.height / img.height ;
var ratio = Math.min ( hRatio, vRatio );
var centerShift_x = ( canvas.width - img.width*ratio ) / 2;
var centerShift_y = ( canvas.height - img.height*ratio ) / 2;
ctx.clearRect(0,0,canvas.width, canvas.height);
ctx.drawImage(img, 0,0, img.width, img.height,
centerShift_x,centerShift_y,img.width*ratio, img.height*ratio);
Приведенный выше код работает, как я хотел, но когда я загружаю изображение, изображение также содержит пробелы с обеих сторон, если ширина <высота, и пробелы внизу вверху, если ширина> высота.
Пример
Фактическое изображение
_________
| (-.-) |
| \|/ |
| | |
| / \ |
|_________|
Вкл. При сохранении изображение выглядит примерно так
_______________
| (-.-) |
| \|/ |
| | |
| / \ |
|_______________|
Поэтому при сохранении я не сохраняю изображение вместе с пробелами. Пожалуйста, помогите ..