Создать NSBezierPath из контура растрового изображения - PullRequest
5 голосов
/ 10 марта 2011

Я хотел бы создать объект NSBezierPath, который соответствует контуру произвольного растрового изображения.

Все мои изображения представляют собой сплошные монохромные фигуры с прозрачным фоном. Вот пример:

Bitmap image of solid padlock shape

Я хочу безье контура контура фигуры. Какой лучший способ добиться этого?

1 Ответ

7 голосов
/ 10 марта 2011

То, что вы ищете, это алгоритм трассировки / векторизации .

DrawKit , кажется, поддерживает растровое изображение для векторной трассировки:

Некоторые другие (не-ObjC) проекты с открытым исходным кодом, реализующие трассировку (для справки по коду):

Любой, кто когда-либо использовал инструменты трассировки Illustrator (или любого из его конкурентов), может заверить вас, что трассировка - это нетривиальная вещь.Но для ваших простых черно-белых изображений (технически серых, из-за сглаживания, но это довольно пренебрежимо здесь) почти любой алгоритм должен справиться с задачей.Особенно, если вы даже не нуждаетесь в идеальной подгонке кривой, как вы заметили.

...