Как я могу рисовать внутри Bouunry PNG изображения - PullRequest
1 голос
/ 02 марта 2012

У меня есть изображение PNG с полной прозрачностью. На нем изображено животное, только что окаймленное черным цветом.

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

Мое мышление -----

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

Сохранение всех пикселей вне границы в массиве и проверка его при перемещении пальца на экране iPad.

Я новичок в концепции базовой графики и открытого GL, поэтому не могу мыслить разумно. Пожалуйста, помогите.

1 Ответ

1 голос
/ 02 марта 2012

Сначала вы должны определить, где находится "внутри", чтобы нарисовать на вашем изображении.Я предлагаю запустить алгоритм заливки на первом месте касания и определить нужные пиксели «внутренней области».Обратите внимание, что вы запустите заливку заливки на фоне исходного черно-белого изображения, а не для рисования пикселей, а просто для определения целевых.

Например;мы хотим раскрасить лицо животных и тело в разные цвета.Когда пользователь впервые касается лица и перетаскивает его, вы можете выполнить заливку на черно-белом изображении, чтобы найти пиксели лица и нарисовать только пересечение области лица и области касания.Затем, когда пользователь поднимает палец (меняет цвет) и ретуширует тело, и вы выполняете еще одну операцию заливки, чтобы обнаружить пиксели тела и т. Д.

Это было длинное описание, надеюсьэто имеет смысл.

Вот несколько источников заполнения, которые могут помочь:

Затопление цели c

https://stackoverflow.com/questions/8121348/flood-fill-algorithm-objective-c-version

Как реализовать алгоритм FloodFill в iphone

...