![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
вы уверены, что до этого этапа не получится скруглить углы? например, до того как рисовать квадраты на битмапе
если нужно все-таки сделать на этом этапе, то я предлагаю сделать поиск углов (4 вида) и заменить их на заранее подготовленный скругленный вариант наверное можно как-то математически решить задачу, но в математике я не на столько силен =)
__________________
low + |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 106
|
До этого не получится, на входе только готовый битмап с прямоугольниками .. ( Поиск прямых углов - так и есть, нужен ...
|
|
|||||
|
Регистрация: Aug 2005
Сообщений: 106
|
Округление выпуклых углов - это опционально, можно делать, можно нет ...
Пока попробовал по диагонали проверять у каждого пикселя его соседей и взависимости от єтого красить его или нет ... Сработало только частично, почему-то крайние правые нижние углы не отработали, да и радиус округления ж может быть разный ... Пример прикрепляю если кому интересно |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 106
|
классный пример, а исходника нет?
|
|
|||||
|
Регистрация: Nov 2009
Сообщений: 300
|
Есть конечно - я его писал
![]() http://**********/14839831 Пример простой, пара моих комментариев, надеюсь все будет понятно. |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 106
|
Работает
не совсем понял как, но спасибо, разберусь |
|
|||||
|
Регистрация: Aug 2005
Сообщений: 106
|
Ага, только ж фильтров там нет вроде, вобщем это вопрос на перспективу.
Всем спасибо |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 300
|
По моему, это все танцы с бубнами. Blur + threshold = как раз то, что ты хочешь.
И делается быстро. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Любое 2-х цветное изображение состоит из фона и прямоугольных же пикселов изображения)
Так что врядли задача решается в общем виде. Можно ли считать, что расстояние между углами всегда не меньше радиуса скругления? Тогда находим все прямоугольники, рисуем их drawRoundRect - профит. Blur, возможно, не подойдёт, если вогнутые углы не надо скруглять (как на рис.). Как искать прямоугольники? Находим угловой пиксел, который не состоит в других прямоугольниках. Двигаемся вправо (или влево, куда можно), пока не упрёмся. Потом двигаемся вверх (или вниз), пока все пикселы получившегося прямоугольника не цвета фона. Повторять пока не останется угловых пикселов.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
> Потом двигаемся вверх (или вниз), пока все пикселы получившегося прямоугольника не цвета фона.
так неверно найдутся пересеченные прямоугольники
__________________
low + |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:30. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|