Руководство по actionscript. часть 5, стр. 064
FilterRect. height. true); finalBitmap. applyFilter(origBitmap. origBitmap. rect.
new PointC-filterRect. x. — filterRect. y).
dsFilter);
На рис. 26.12 показаны результаты выполнения предыдущего кода.
J
Рис. 26.12. Изображение с примененным фильтром падающей тени
Теперь, когда мы рассмотрели основы использования фильтров, вернемся к листингу 26.11, чтобы улучшить эффект старой фотографии. В листинге 26.12 показан новый код. Общая методика создания и применения фильтров в этом примере уже должна быть вам знакома. Тем не менее в примере используется специальный фильтр, который мы еще не рассматривали: ColorMatrixFilter. Этот фильтр с помощью матричных преобразований изменяет цвета в растровом изображении для создания таких эффектов, как, например, настройка яркости, контраста и насыщенности, изменение оттенка. Этот пример демонстрирует, как использовать фильтр ColorMatrixFilter в его исходном виде, но по крайней мере два разработчика предоставляют бесплатный код для выполнения распространенных матричных преобразований:
? класс ColorMatrix Марио Клингеманна (Mario Klingemann) — http://www. quasimondo. com/archives/000565.php;
? класс ColorMatrix Гранта Скиннера (Grant Skinner) — http://www. gskinner. com/ blog/archives/2005/09/flash_8_source. html.
Общую информацию по цветовым матричным преобразованиям можно найти в статье « Using Matrices for Transformations, Color Adjustments, and Convolution Effects in Flash» Фила Чанга (Phil Chung), доступной по адресу http://www. adobe. com/devnet/ flash/articles/matrix_transformations_04.html.
Листинг 26.12. Эффект старой фотографии, теперь с фильтрами
package { import flash. display.*;
import flash. events.*;
import flash. geom.*;
import flash. net.*;
import flash. filters.*;
public class Scrapbooklmage extends Sprite { private var numl_oaded:int = 0;
private var photoLoader.-Loader; // Загрузчик фотографии
private var borderLoader-.Loader; // Загрузчик рамки
public function Scrapbooklmage ( ) { // Загружаем фотографию photoLoader = new Loader( );
photoLoader. contentLoaderInfo. addEventListener(Event. INIT.