Ответ 1
Я думал, что то же самое, и что Отслеживание ошибок сообщает:
Да, поэтому статья была написана, когда у Safari был резервный магазин соотношение 2. В Chrome всегда было 1.
Как вы говорите, подход к решению этой проблемы:
canvas.width = width * window.devicePixelRatio;
canvas.height = height * window.devicePixelRatio;
canvas.style.width = width + 'px';
canvas.style.height = height + 'px';
Если
width
иheight
, однако, вы хотите их (возможно, window.innerWidth и innerHeight для полного просмотра shenanigans.)Тогда вам просто нужно приспособиться к тому, что вы увеличили масштаб холста с:
ctx.scale(window.devicePixelRatio, window.devicePixelRatio);
Итак, у вас есть свое решение.