Руководство по actionscript. часть 5, стр. 045
Подробное описание перечисленных методов можно найти в описании класса BitmapData в справочнике по языку ActionScript корпорации Adobe.
Класс BitmapData также поддерживает различные фильтры, эффекты и операции копирования, которые могут быть использованы для управления пикселами растрового изображения. Дополнительную информацию можно получить далее, в разд. «Копирование графики в объект BitmapData» и «Применение фильтров и эффектов» этой главы.
Изменение размеров растрового изображения
Когда изменяются размеры объекта Bitmap, ссылающегося на объект BitmapData, с помощью переменных scaleX и scaleY или width и height, размеры изображения на экране меняются, однако нижележащий объект BitmapData остается неизменным. Чтобы изменить размер нижележащего объекта BitmapData на самом деле, мы должны произвести его повторную выборку с помощью метода экземпляра draw ( ) класса BitmapData {повторная выборка означает изменение числа пикселов в изображении). Общая методика выглядит следующим образом.
1. Получить ссылку на исходный объект BitmapData.
2. Нарисовать масштабированную версию исходного объекта BitmapData в новом объекте BitmapData.
3. Наконец, связать исходный объект Bitmap с новым, масштабированным объектом BitmapData.
Перечисленные шаги продемонстрированы в листинге 26.7.
Листинг 26.7. Повторная выборка растрового изображения
// Получаем временную ссылку на исходный объект BitmapData var originalBitmapData:BitmapData = originalBitmap. bitmapData;
// Устанавливаем величину, которая будет определять коэффициент // масштабирования растрового изображения var scaleFactonNumber = .5:
// Вычисляем новые размеры масштабированного растрового изображения var newWidth:int = originalBitmapData. width * scaleFactor, var newHeight;int = originalBitmapData. height * scaleFactor;
// Создаем новый объект BitmapData, размеры которого позволят уместить // масштабированное растровое изображение
var scaledBitmapData:BitmapData = new BitmapData(newWidth, newHeight,
ori gi nalBitmapData. transparent);
// Создаем матрицу преобразований, с помощью которой будет происходить // масштабирование растрового изображения var scaleMatrixiMatrix = new Matrix( ); matrix. scale(scaleFactor, scaleFactor);
// Переносим масштабированное растровое изображение
// в новый объект BitmapData
sealedBi tmapData. draw(ori gi nalBi tmapData, matri x);
// Заменяем исходный объект BitmapData. новым масштабированным объектом BitmapData originalBitmap. bitmapData = scaledBitmapData;
В следующем разделе мы узнаем более подробно о методе draw ( ).