Я работаю над редактором изображений в Qt и пытаюсь реализовать инструмент выбора. Я планирую использовать путь QPainterPath, чтобы обрезать область рисования.
У меня проблемы с рисованием пути, чтобы пользователь мог видеть, что выбрано. Я могу использовать QPainter :: drawPath, но когда я увеличиваю, неясно, какие именно пиксели выбраны. Кроме того, контур рисуется даже внутри выделенных пикселей.
Что я хочу (скриншот из Paint.NET)
Что я получаю сейчас (используя трансформации)
Единственный способ исправить это — перебрать каждую точку на рисунке и использовать QPainterPath :: contains для создания нового увеличенного пути, который имеет неровные края и не имеет внутренних контуров, но это ужасно неэффективно.
РЕДАКТИРОВАТЬ:
Если есть какой-то простой способ обвести изображение, я мог бы нарисовать выделение без сглаживания на отдельном изображении, растянуть его, добавить контур, а затем нарисовать его поверх изображения, но я не могу найти способ обвести изображение.
Задача ещё не решена.
Других решений пока нет …