среда, 6 февраля 2013 г.

как сделать из фотографии раскраску онлайн

Браузерное рисование это canvas либо svg. Но выясняется очень плохая с точки зрения алгоритма раскраски особенность браузеров. При рисовании линий используется не отключаемый antialiasing. Сначала были попытки борьбы с этим программной заменой всех хоть сколько-нибудь прозрачных пикселей цветом фона. Но как оказалось прозрачность это не все. Сглаживание происходит не только при помощи прозрачности а и по цвету. То есть нарисованная и «обезпрозраченная» одноцветная линия в своем составе имеет пиксели, отличающиеся по одной или нескольким компонентам RGB до 5 единиц. В моем случае это серьезная проблема, поскольку алгоритм должен получить для одноцветной линии все пиксели одинакового цвета. И решается она двумя способами. Либо предобработкой с искусственной заменой «похожих» пикселей на пиксели нужного цвета, либо попиксельным рисованием. Выбран был второй путь рисование через putImageData. Пришлось, правда, написать функцию поиска пиксельной «прямой», соединяющей две точки.

Так я плавно подошел к варианту браузерного рисования и серверного счета.

Следующим вариантом было браузерное приложение на Java. Но он отпал из-за необходимости для работы приложения запуска дополнительного софта.

Первое что приходит в голову flash. Он в какой-то мере позволяет защитить код и при этом в одном приложении можно совместить и рисование, и раскраску. Но с флешом я вообще никогда не работал. Установил триальный adobe flash, скачал похожий пример и как-то с флешом у меня не заладилось. Пришлось пока этот вариант отложить и попробовать что-то другое.

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

Некоторое время назад я о своем раскраске и для публикации эскизов и картин из приложения. Идея браузерной онлайн-раскраски вполне логична, но как-то не было стимула сесть и сделать. Было очевидно, что придется использовать технологии, с которыми я не работал и это не сильно вдохновляло. Но как-то появилось время и я решил попробовать. Забегая наперед скажу, что в процессе вскрылись достаточно неочевидные свойства браузеров. Выяснилось, что есть онлайн-компиляторы (в частности с++), выдающие исполняемый файлы для windows и linux. И кроме того мне пришлось впервые поставить себе Linux (Ubuntu).

Мои экзерсисы2. PaintUp раскраска разноцветных эскизов online

Мои экзерсисы2. PaintUp раскраска разноцветных эскизов online / Хабрахабр

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

Отправить комментарий