Почему ваш canvas «съезжает» или выглядит размытым: невидимая ловушка размеров

HTML-элемент <canvas> часто используется для рисования интерактивной графики, визуализации данных, или даже простых эффектов. Но многие разработчики сталкиваются с неожиданным поведением: изображение смещается, масштаб не соответствует ожиданиям, или картинка получается мыльной.

Разберёмся в причине и как это исправить.

Проблема кроется в том, что у канваса два набора размеров.

Первый размер — это тот, что задаётся в CSS. Он управляет визуальной составляющей, тем сколько canvas занимает на странице места.

Вторые размеры — это пиксельный размеры внутренней рабочей области рисования. Когда вы рисуете на canvas, именно эти размеры и определяют максимальные позиции x, y, которые видны. Они задаются атрибутами тега canvas — width и height.

По умолчанию эти размеры 300×150.

Например:

Визуально блок занимает 400×400 пикс, но его API размеры для рисования 300×150 точек. Если это не учитывать, искажение пропорций и размытая графика гарантированы как результат.

Чтобы этого не происходило, обязательно синхронизируйте размеры.

Написать комментарий

Мало букафф? Читайте есчо !

Поиск и замена терминов. Пример реализации.

Август 15, 2016 г.

Задача поиска и замены каких либо терминов в тексте кажется на первый взгляд довольно простой в PHP.  Есть очень мощные инструменты вроде str_replace, а также поиск и замена с помощью регулярных выражений, например, preg_replace и preg_replace_callback. ...

Читать

node_save в hook_node_insert

Апрель 13, 2021 г.

Рассмотрим технику того, как выполнить node_save во время hook_node_insert. Проблема в том, что во время данного хука мы еще находимся в транзакции и выполнить сохранение ноды прямо тут коде функции - не получится. Т.е. следующий код работать не ...

Читать

 

Комментарии к «Почему ваш canvas «съезжает» или выглядит размытым: невидимая ловушка размеров»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: