Показать сообщение отдельно
Старый 09.12.2011, 12:53
Perditta XXX вне форума Посмотреть профиль Отправить личное сообщение для Perditta XXX Найти все сообщения от Perditta XXX
  № 1  
Ответить с цитированием
Perditta XXX

Регистрация: Dec 2008
Сообщений: 5
Отправить сообщение для Perditta XXX с помощью ICQ
По умолчанию Эффект "пикселизации" на AS2

Задача:
Есть шейп, анимированый шейп твином. Белый шейп на чёрном фоне. Необходимо, чтобы он "пикселизовался", т.е. отображался грубо, крупными блоками-"пикселями". Параметры сцены и размер нужного пикселя фиксированные. В итоге должен получится баннер, т.е. единственный swf файл, в который не нужно будет ничего подгружать извне.

Что имеем:
Решений для AS3 много, для AS2 - не нашёл ничего, кроме компонента "IMG_Loader_Pixelate". Т.е. ничего не имеем.

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

Вариант второй:
Замостить сцену поверх шейпа клипами с квадратами. Проверять пересечение квадратов с шейпом. Если прересёкся - заливать квадрат белым. Если не пересёкся - оставлять чёрным. Пересёкся частично - оттенком серого в зависимости от площади пересечения.

Вариант третий:
Срисовать с шейпа по кусочкам нужного размера битмап или целый битмап со всего шейпа и потом разделить его на куски. Вычислить средний арифметический цвет каждого кусочка и окрасить его в этот цвет.

Вариант четвёртый:
Срисовать битмап, разделить его на нужные куски и прикрыть их сверху маской, аналогичной размеру куска. На каждый кусок под маской наложить сильный blur.

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