Введение
В настоящее время я занимаюсь разработкой небольшого приложения для рисования, похожего на Sketchpad в MugTug.Однако есть одна довольно неприятная проблема, которую мне пока не удалось обойти.
Алгоритм рисования
Мой основной алгоритм рисования похож на тот, который используется в MugTug.По сути, он просто маркирует изображения, используя drawImage, пока пользователь рисует.Есть один серьезный недостаток.Алгоритм начинает давать сбой при низком альфа.
Это легко увидеть в инструменте MugTug, установив настройки кисти следующим образом: диаметр -> 100, твердость -> 1, расход -> 100, непрозрачность -> 2 (1 слишком мало! Ошибка в приложении?).
Существуют две основные проблемы: 1. Видимая полоса.2. Сдвиги цветов (посмотрите, как это работает ...)
Вопросы
Может ли проблема быть связана с точностью цвета?Мне кажется, что Canvas API обрабатывает цвета с использованием 8-битных каналов (т. Е. 0-255).Есть ли способ обойти это ограничение?Я бы предпочел использовать чистые плавающие цвета (0,0-1,0) вместо этого, если это возможно.
Любые идеи о том, как бороться с этим, приветствуются.Если цвет действительно ограничен 8-битными каналами, думаю, мне не повезло ...