Оттенки серого и альфа-маска в ActionScript - PullRequest
0 голосов
/ 10 июля 2011

Я хотел бы создать маску, которая преобразует любые цвета в оттенки серого, а затем уменьшает их альфа-значение.Предназначенная цель состоит в том, чтобы замаскированная область была в оттенках серого и светлее, чтобы немаскированная область была более заметной.Большинство уроков, которые я видел для масок альфа-значений, слишком сложны и используют Flash GUI.Как выполнить то же самое в ActionScript?

Обновление: Вот объяснение с изображениями ...

Если мое изображение выглядит следующим образом:

enter image description here

Тогда традиционная маска для некоторого выделения выдаст следующее:

enter image description here

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

enter image description here

И их альфа-значение уменьшилось, поэтому они стали светлее:

enter image description here

1 Ответ

0 голосов
/ 10 июля 2011

Моя рекомендация:

  1. Создайте экземпляр Sprite / Movieclip, который вы хотите замаскировать как объект BitmapData
  2. Создайте экземпляр маски, который вы применяете к мувиклипу Sprite
  3. Создайте дубликат экземпляра оригинала спрайта / мувиклипа класса BitmapData. Вы продублируете это, используя copyPixels метод и убедившись, что это та же ширина + высота.
  4. Создайте 3-й экземпляр оригинала, на этот раз с примененным к нему свойством alpha, но для свойства visible установлено значение none.
  5. В дублирующем (втором) экземпляре вы можете включить этот третий экземпляр в качестве источника альфа-свойств в аргументах copyPixels
  6. Примените ColorMatrixFilter ко 2-му экземпляру, чтобы получить шкалу серого. Он также принимает свойство альфа, если вы не хотите использовать шаг 5 , но ваш пример выглядит так, что альфа не везде одинакова, поэтому требуется третий экземпляр

Надеюсь, это поможет. И если вы все еще не уверены, просто посмотрите Primer.

...