@ Ответ Кастрохенджа работает, но, как указывает Мухаммед Умер, после этого он путает координаты мыши на оригинальном холсте.Если вы хотите сохранить возможность выполнять дополнительные масштабы (для обрезки и т. Д.), Вам необходимо использовать второй холст (для масштабирования), а затем извлечь данные изображения со второго холста и поместить их в исходный холст.Вот так:
function scaleImageData(imageData, scale){
var newCanvas = $("<canvas>")
.attr("width", imageData.width)
.attr("height", imageData.height)[0];
newCanvas.getContext("2d").putImageData(imageData, 0, 0);
// Second canvas, for scaling
var scaleCanvas = $("<canvas>")
.attr("width", canvas.width)
.attr("height", canvas.height)[0];
var scaleCtx = scaleCanvas.getContext("2d");
scaleCtx.scale(scale, scale);
scaleCtx.drawImage(newCanvas, 0, 0);
var scaledImageData = scaleCtx.getImageData(0, 0, scaleCanvas.width, scaleCanvas.height);
return scaledImageData;
}