2010-01-20 2 views
0

Я пытаюсь написать некоторый ActionScript, который примет маску и изображение, затем замаскирует изображение и помещает рамку вокруг результата (предполагая, что маска всегда на 100% непрозрачна).ActionScript: Нарисуйте границу вокруг замаскированного изображения?

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

masked flowers http://img.skitch.com/20100120-xghntrn5yumxst97gjky2qje1p.png

Возможно ли это? И если да, то как я могу это сделать?

ответ

1

AFAIK это невозможно. Я бы подумал об использовании GlowFilter на замаскированном изображении и настройке его свойств, чтобы он выглядел как граница.

+0

Прохладный - мне удалось подделать его с помощью GlowFilter с 'strength = 8' и' inner = true'. Это не идеально, хотя (невозможно получить закругленные углы, размер иногда несовместим и т. Д.) :( –

1

Я бы использовал идею фильтра свечения TBH ... Но где эта маска? В зависимости от этого ответа у меня есть две идеи:

Если это идет от пользовательского ввода, как пользователь рисует форму ВНУТРИ флэш-приложение, то это довольно легко:

  1. Вы бы записать массив точек, в то время как пользователь «рисует» форму.
  2. Затем вы создаете и рисовать два мувиклипы
    • Один с заливкой, которая была бы маска.
    • И еще один контур, который был бы контуром, чтобы пройти маску.

Если он идет из-за пределов флэш-приложение, это возможно, но это будет медленнее, чем грязь. Вы можете:

  1. Возьмите фильм с маской (при условии, что все черным) и преобразуйте его в объект Bitmap.
  2. Затем пройдите через объект битмаски, пиксель за пикселем, чтобы определить внешние точки объекта.
  3. Тогда не очень простая часть (LOL): Затем выполните все точки и перестройте их так, чтобы они были рядом с двумя ближайшими точками к ним в массиве.
  4. Затем вы можете создать новый фильм и нарисовать точки в виде линий в этом фильме, поместив его в слой над маской.
+0

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

Смежные вопросы