Вы можете иметь отображение холста с разрешением 500 пикселей при разрешении 1600 пикселей. Размер и разрешение дисплея независимы. Для разрешения вы задаете свойства ширины и высоты холста. Для размера дисплея вы устанавливаете холст стиль свойства ширины и высоты.
// create a canvas or get it from the page
var canvas = document.createElement("canvas");
// set the resolution (number of pixels)
canvas.width = canvas.height = 1600;
// set the display size
canvas.style.width = canvas.style.height = "500px";
// get the rendering context
var ctx = canvas.getContext("2d");
Чтобы получить рендеринг в соответствии с размером экрана, необходимо масштабировать весь рендеринг. Вы можете сделать это, установив масштаб преобразования в разрешение холста, деленная на размер дисплея
var scale = 1600/500; // get the scale that matches display size
ctx.setTransform(scale,0,0,scale,0,0);
Теперь, когда вы оказываете на холсте вы используете координаты размера экрана.
ctx.fillRect(0,0,500,500); // fill all of the canvas.
ctx.fillStyle = "red"; // draw a red circle 100 display pixels in size.
ctx.beginPath();
ctx.arc(250,250,100,0,Math.PI * 2);
ctx.fill();
Когда вы сохраните холст, что когда-либо метод, который вы используете, пока это не захват экрана спасенного холст будет 1600 на 1600 и все будет одинаково правильно позицией и пропорциональную
Он работал на моем POC. Я подготовлю все свое решение. –