ColorMatrixFilter или фильтр "матрица линейного преобразования" - один из фильтров в арсенале языка ActionScript 3.0. Данный фильтр относится к тем нескольким фильтрам, которые доступны только через код ActionScript. Фильтр ColorMatrixFilter позволяет манипулировать цветовыми значениями и прозрачностью объектов флеш-ролика. В качестве параметра этот фильтр принимает массив из 20 (!) чисел, используемых для расчёта конечного значения цвета.
Для большей наглядности при работе с фильтром ColorMatrixFilter я написал маленькое флеш-приложение. В это приложение можно загрузить с вашего компьютера изображение (кнопка ЗАГРУЗИТЬ), а затем для этого изображения настроить фильтр ColorMatrixFilter на ваш личный вкус. Настройка фильтра осуществляется через слайдеры. Количество и порядок расположения слайдеров соответствуют количеству и порядку следования параметров фильтра ColorMatrixFilter. Полученный при настройке код можно скопировать из текстового поля, расположенного в нижней части флеш-приложения. Кроме этого, настройки фильтра можно сгенерировать случайным образом, нажав кнопку СЛУЧАЙНО (обратите внимание, что программе требуется время на генерацию случайного фильтра и вам, возможно, придётся подождать отклика приложения одну - две секунды).
Этот фильтр даёт возможность реализовать множество интересных эффектов. Для примера я подобрал в этой программке параметры, которые позволяют имитировать эффект старого фото (эффект сепии).
Код ActionScript 3.0:
/*
Классы, которые надо импортировать.
*/
import flash.filters.ColorMatrixFilter;
import flash.display.Bitmap;
/*
MyImage - это класс, связанный с изображением в библиотеке Adobe Flash.
*/
var myImage:MyImage = new MyImage();
/*
С помощью Bitmap добавляем наше изображение на сцену флеш-ролика.
*/
var bitmap:Bitmap = new Bitmap(myImage);
addChild(bitmap);
/*
Присваеваем изображению фильтр ColorMatrixFilter.
*/
bitmap.filters = [new ColorMatrixFilter([0.767,0.927,0.429,0.95,-97,0.846,0.27,0.461,0.294,-66,0.973,0.734,0.733,0.349,-196,1,0.911,0.917,0.477,510])];
Данный фильтр можно присвоить любому видимому элементу флеш-ролика. Но, конечно, наибольший художественный эффект достигается при применении фильтра ColorMatrixFilter к растровым изображениям и видеороликам. Но данный фильтр можно присвоить и спрайту или мувику, которые являются контейнерами для изображений и видео.
Если у Вас получился какой-то интересный эффект, то поделитесь его кодом в комментариях к посту.
Примечание
Уже после написания поста нашёл в сети отличный генератор кода для фильтра ColorMatrixFilter - ColorMatrixBuilder. Эх, знал бы раньше - не стал бы и времени тратить на эту тему :-) Впрочем, опыт лишним не бывает...
Обновление от 14.10.2014: Кое-что поправил (надеюсь, не накосячил). Самое главное дополнение - это галочка "transparency". Она вам очень сильно пригодится, если вы хотите применять ColorMatrixFilter к мувиклипам в ваших флеш-проектах. Не верите? А попробуйте с галочкой и без галочки - почувствуйте разницу :-)