Подтвердить что ты не робот

Холст HTML5 избегает любого подпиксельного рендеринга

Как видно здесь. У меня возникло несколько проблем с точностью субпикселей в холсте. Теперь у меня еще больше. Я пытаюсь отобразить изогнутые изометрические квадраты, как показано на изображении в приведенной ссылке. В попытке позже обработать данные пикселя в визуализированном изображении и извлечь текущие цвета.

Sub Pixel

Но из-за проблемы с субпикселем, когда я получаю цвета, которые на самом деле не присутствуют в исходном изображении! И независимо от того, где я, кажется, начинаю рисовать линию, которую вы видите на изображении (будь то от [1,1] до [10,10] или [1,5, 1,5] до [10,5, 10,5], это всего лишь пример) Я всегда получаю эти цвета подпикселей, которые разрушают мои результаты!

Кто-нибудь знает, как я могу избежать этого или предложить правильный путь, я должен нарисовать псевдо-изометрическую линию (псевдо, как в изометрических углах пикселя). Поэтому у меня есть хорошие жесткие края на моих фигурах, и я не разрушаю рендеринг изображение с любым видом субпиксельного мусора.

4b9b3361

Ответ 1

Хорошо после некоторых исчерпывающих исследований, похоже, нет стандартизованного способа остановить то, что я испытываю.

Что такое сглаживание, которое в зависимости от браузера может быть включено или отключено только для определенных операций рисования.

Есть несколько трюков о том, как избежать сглаживания в некоторых ситуациях в этом вопросе: Можно ли отключить сглаживание на HTML < холсте > элемент?

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

В настоящее время не существует поддерживаемого api решения для проблемы