Пакет | flash.display |
Класс | public class BitmapData |
Наследование | BitmapData ![]() |
Реализует | IBitmapDrawable |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
flash.display.Loader
.
Этот класс позволяет отделить операции по визуализации растрового изображения от внутренних подпрограмм обновления отображения проигрывателя Flash Player. Путем непосредственной манипуляции объектом BitmapData можно создавать сложные изображения без необходимости постоянно перерисовывать содержимое из векторных данных в каждом кадре.
Методы класса BitmapData поддерживают эффекты, не доступные через фильтры, предусмотренные для нерастровых экранных объектов.
Объект BitmapData содержит массив пиксельных данных. Эти данные могут представлять либо полностью непрозрачное растровое изображение, либо прозрачное растровое изображение с данными альфа-канала. Объекты BitmapData любого типа сохраняются в виде буфера 32-разрядных целых чисел. Каждое 32-разрядное целое число определяет свойства одного пиксела в растровом изображении.
Каждое 32-разрядное целое число представляет собой комбинацию 8-разрядных значений каналов (от 0 до 255), описывающих альфа-прозрачность и значения красного, зеленого и синего (ARGB) пиксела. (Для значений ARGB наиболее значимый байт представляет значение альфа-канала, а за ним следуют красный, зеленый и синий.)
Четыре канала (альфа-канал, красный, зеленый и синий) представлены числами при использовании с методом BitmapData.copyChannel()
или свойствами DisplacementMapFilter.componentX
и DisplacementMapFilter.componentY
, и эти числа представлены следующими константами класса BitmapDataChannel class:
BitmapDataChannel.ALPHA
BitmapDataChannel.RED
BitmapDataChannel.GREEN
BitmapDataChannel.BLUE
Объекты BitmapData можно присоединить к объекту Bitmap с помощью свойства bitmapData
объекта Bitmap.
Объект BitmapData можно использовать для заполнения объекта Graphics с помощью методаGraphics.beginBitmapFill()
.
Максимальная ширина и высота объекта BitmapData составляет 2880 пикселов.
Вызовы любого метода или свойства объекта BitmapData выдают ошибку ArgumentError, если объект BitmapData недействителен (например, если height == 0
и width == 0
) или если он был удален с помощью метода dispose().
См. также
Свойство | Определено | ||
---|---|---|---|
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
height : int [только для чтения]
Высота растрового изображения в пикселах. | BitmapData | ||
![]() | prototype : Object [статические]
Ссылка на модель объекта класса или функции. | Object | |
rect : Rectangle [только для чтения]
Прямоугольник, определяющий размер и расположение растрового изображения. | BitmapData | ||
transparent : Boolean [только для чтения]
Определяет, поддерживает ли растровое изображение попиксельную прозрачность. | BitmapData | ||
width : int [только для чтения]
Ширина растрового изображения в пикселах. | BitmapData |
Метод | Определено | ||
---|---|---|---|
Создает объект BitmapData заданной ширины и высоты. | BitmapData | ||
applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Создает фильтрованное изображение по исходному изображению и объекту filter. | BitmapData | ||
Возвращает новый объект BitmapData, являющийся клоном исходного экземпляра с точной копией содержащегося в нем растрового изображения. | BitmapData | ||
Изменяет значения цветов в заданной области растрового изображения с помощью объекта ColorTransform. | BitmapData | ||
Сравнивает два объекта BitmapData. | BitmapData | ||
copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
Переносит данные из одного канала отдельного объекта BitmapData или текущего объекта BitmapData в канал текущего объекта BitmapData. | BitmapData | ||
copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
Представляет собой процедуру быстрой обработки точек изображений без растяжения, поворота и цветовых эффектов. | BitmapData | ||
Очищает память, задействованную для хранения объекта BitmapData. | BitmapData | ||
draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Отображает исходный экранный объект поверх растрового изображения с помощью векторного средства визуализации проигрывателя Flash Player. | BitmapData | ||
Заполняет прямоугольную область пикселов заданным цветом ARGB. | BitmapData | ||
Выполняет операцию световой заливки изображения, начиная с точки с координатами (x, y) и заполняя область определенным цветом. | BitmapData | ||
Определяет конечный прямоугольник, на который воздействует вызов метода applyFilter(), при наличии объекта BitmapData, исходного прямоугольника и объекта фильтра. | BitmapData | ||
Определяет прямоугольный участок, полностью охватывающий все пикселы заданного цвета в пределах растрового изображения (если параметру findColor присвоено значение true), либо полностью охватывает все пикселы, не содержащие заданный цвет (если параметру findColor присвоено значение false). | BitmapData | ||
Возвращает целое число, представляющее RGB-значение пиксела из объекта BitmapData в конкретной точке (x, y). | BitmapData | ||
Возвращает значение цвета ARGB, содержащее данные альфа-канала и данные RGB. | BitmapData | ||
Формирует байтовый массив из прямоугольного участка пиксельных данных. | BitmapData | ||
DOCUMENT ME
| BitmapData | ||
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
Вычисляет гистограмму на 256 секций для объекта BitmapData. | BitmapData | ||
hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Выполняет распознавание на уровне пикселов между одним растровым изображением и точкой, прямоугольником или другим растровым изображением. | BitmapData | ||
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
Блокирует изображение, чтобы любые объекты, ссылающиеся на объект BitmapData, например объекты Bitmap, не обновлялись при изменении данного объекта BitmapData. | BitmapData | ||
merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Проводит наложение каналов исходного изображения на целевое изображение. | BitmapData | ||
noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
Заполняет изображение пикселами, представляющими собой белый шум. | BitmapData | ||
paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
Переназначает значения цветовых каналов в изображении, содержащем до четырех массивов данных цветовой палитры, по одному для каждого канала. | BitmapData | ||
perlinNoise(baseX:Number, baseY:Number, numOctaves:uint, randomSeed:int, stitch:Boolean, fractalNoise:Boolean, channelOptions:uint = 7, grayScale:Boolean = false, offsets:Array = null):void
Создает изображение с шумом Перлина. | BitmapData | ||
pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
Выполняет растворение точек от исходного изображения до целевого или для одного изображения. | BitmapData | ||
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
Прокручивает изображение на заданное число точек (x, y). | BitmapData | ||
Задает одиночный пиксел объекта BitmapData. | BitmapData | ||
Задает значения цвета и альфа-прозрачности отдельно взятой точки объекта BitmapData. | BitmapData | ||
Преобразует массив байт в прямоугольный участок пиксельных данных. | BitmapData | ||
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
BitmapData | |||
threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
Сопоставляет пиксельные значения в изображении с заданным пороговым значением и присваивает пикселам, прошедшим проверку, новые цветовые значения. | BitmapData | ||
![]() |
Возвращает строковое представление заданного объекта. | Object | |
Разблокирует изображение, чтобы любые объекты, ссылающиеся на объект BitmapData, например объекты Bitmap, обновлялись при изменении данного объекта BitmapData. | BitmapData | ||
![]() |
Возвращает элементарное значение заданного объекта. | Object |
height | свойство |
height:int
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Высота растрового изображения в пикселах.
public function get height():int
rect | свойство |
rect:Rectangle
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Прямоугольник, определяющий размер и расположение растрового изображения. Верхняя левая точка прямоугольника имеет значение 0; ширина и высота в пикселах равны размерам объекта BitmapData.
public function get rect():Rectangle
transparent | свойство |
transparent:Boolean
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, поддерживает ли растровое изображение попиксельную прозрачность. Это значение можно задавать, только когда при создании объекта BitmapData в конструкторе передается значениеtrue
для параметра transparent
. Затем, когда объект BitmapData создан, можно узнать, поддерживает ли он попиксельную прозрачность: для этого нужно проверить, имеет ли свойство transparent
значение true
.
public function get transparent():Boolean
width | свойство |
width:int
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Ширина растрового изображения в пикселах.
public function get width():int
BitmapData | () | Конструктор |
public function BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает объект BitmapData заданной ширины и высоты. Если задать значение для параметра fillColor
, каждый пиксел растрового изображения будет окрашен в этот цвет.
По умолчанию растровое изображение создается прозрачным, если не передано значение false
для параметра transparent
. Создав непрозрачное растровое изображение, его нельзя сделать прозрачным. Каждый пиксел непрозрачного растрового изображения использует только 24 бита информации о цветовых каналах. Если растровое изображение определено как прозрачное, каждый пиксел использует 32 бита информации о цветовых каналах, включая канал альфа-прозрачности.
Максимальная ширина и высота объекта BitmapData составляет 2880 пикселов. Если задать значение ширины или высоты, превышающее 2880, новый экземпляр не будет создан.
Параметрыwidth:int — Ширина растрового изображения в пикселах.
| |
height:int — Высота растрового изображения в пикселах.
| |
transparent:Boolean (default = true ) — Определяет, поддерживает ли растровое изображение попиксельную прозрачность. Значение по умолчанию — true (прозрачное). Чтобы создать полностью прозрачное растровое изображение, параметру transparent нужно присвоить значение true , а параметру fillColor — 0x00000000 (или 0). Если задать свойству transparent значение false , то можно незначительно улучшить производительность визуализации.
| |
fillColor:uint (default = 0xFFFFFFFF ) — 32-разрядное ARGB-значение цвета, используемое для заливки области растрового изображения. Значение по умолчанию — 0xFFFFFFFF (сплошной белый).
|
ArgumentError — ширина и (или) высота недействительны (меньше или равны нулю, либо больше 2880)
|
applyFilter | () | метод |
public function applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает фильтрованное изображение по исходному изображению и объекту filter.
Этот метод базируется на поведении встроенных объектов фильтра, которые определяют целевой прямоугольник, затрагиваемый вводным исходным прямоугольником.
Полученное после применения фильтра изображение может быть больше вводного. Например, если класс BlurFilter используется, чтобы размыть очертания исходного прямоугольника с координатами (50,50,100,100) и точку назначения с координатами (10,10), то область конечного изображения будет больше (10,10,60,60) в результате размытости. Это происходит на внутреннем уровне при вызове метода applyFilter()
.
Если параметр sourceRect
параметра sourceBitmapData
является внутренней областью, например (50,50,100,100) в изображении 200 x 200, фильтр использует исходные пикселы за пределами параметра sourceRect
, чтобы создать целевой прямоугольник.
Если объект BitmapData является объектом, указанным в качестве параметра sourceBitmapData
, проигрыватель Flash Player использует временную копию объекта для выполнения фильтрации. Если требуется обеспечить максимальную производительность, такую ситуацию лучше избегать.
Параметры
sourceBitmapData:BitmapData — Вводное растровое изображение для использования. Исходным изображением может быть другой объект BitmapData, или оно может ссылаться на текущий экземпляр BitmapData.
| |
sourceRect:Rectangle — Прямоугольник, определяющий область исходного изображения, которое будет использоваться для ввода.
| |
destPoint:Point — Точка в целевом изображении (текущем экземпляре BitmapData), соответствующая правому левому углу исходного прямоугольника.
| |
filter:BitmapFilter — Объект фильтра, который будет использоваться для выполнения фильтрации. Каждый тип фильтра имеет определенные требования, приведенные ниже.
|
TypeError — Объекты sourceBitmapData, sourceRect, destPoint или filter имеют значение null.
| |
IllegalOperationError — Прозрачность объектов BitmapData несовместима с операцией фильтрации.
|
См. также
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
clone | () | метод |
public function clone():BitmapData
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает новый объект BitmapData, являющийся клоном исходного экземпляра с точной копией содержащегося в нем растрового изображения.
ВозвращаетBitmapData — Новый объект BitmapData, идентичный исходному.
|
import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(100, 80, false, 0x00000000); var bmd2:BitmapData = bmd1.clone(); bmd1.setPixel32(1, 1, 0xFFFFFFFF); trace(bmd1.getPixel32(1, 1).toString(16)); // ffffffff trace(bmd2.getPixel32(1, 1).toString(16)); // ff000000 var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); bm2.x = 110; this.addChild(bm2);
colorTransform | () | метод |
public function colorTransform(rect:Rectangle, colorTransform:ColorTransform):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Изменяет значения цветов в заданной области растрового изображения с помощью объекта ColorTransform
. Если прямоугольник соответствует границам растрового изображения, этот метод преобразует значения цветов для всего изображения.
Параметры
rect:Rectangle — Объект Rectangle, определяющий область изображения, в которой применяется объект ColorTransform.
| |
colorTransform:ColorTransform — Объект ColorTransform, описывающий применяемые значения преобразования цвета.
|
TypeError — Объекты rect и colorTransform имеют значение null.
|
См. также
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.ColorTransform; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFF0000); var cTransform:ColorTransform = new ColorTransform(); cTransform.alphaMultiplier = 0.5 var rect:Rectangle = new Rectangle(0, 0, 40, 30); bmd.colorTransform(rect, cTransform); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
compare | () | метод |
public function compare(otherBitmapData:BitmapData):Object
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Сравнивает два объекта BitmapData. Если два объекта BitmapData имеют одинаковые размеры (ширину и высоту), метод возвращает новый объект BitmapData, в котором каждый пиксел представляет "разницу" между пикселами двух исходных объектов.
otherBitmapData
). В данном случае различия значений альфа-канала игнорируются. otherBitmapData
).В качестве примера рассмотрим два следующих объекта BitmapData.
var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFF8800); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCCC6600); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel(0,0).toString(16); // 0x332200
Примечание. Цвета, использованные для заливки двух объектов BitmapData, имеют немного разные RGB-значения (0xFF8800 и 0xCC6600). В результате использования метода compare()
создается новый объект BitmapData, каждый пиксел которого показывает разницу RGB-значений между двумя растровыми изображениями.
Рассмотрим следующие два объекта BitmapData, у которых одинаковые RGB-цвета, но разные значения альфа-канала.
var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = bmd1.compare(bmd2) as BitmapData; trace ("0x" + diffBmpData.getPixel32(0,0).toString(16); // 0x33ffffff
В результате использования метода compare()
создается новый объект BitmapData, каждый пиксел которого показывает разницу значений альфа-канала между двумя растровыми изображениями.
Если объекты BitmapData идентичны (имеют одинаковую высоту, ширину и значения пикселов), метод возвращает значение 0.
Если объекты BitmapData имеют разную ширину, метод возвращает значение -3.
Если объекты BitmapData имеют разную высоту, но одинаковую ширину, метод возвращает значение -4.
В следующем примере сравниваются два объекта Bitmap с разной шириной (50 и 60).
var bmd1:BitmapData = new BitmapData(100, 50, false, 0xFFFF0000); var bmd2:BitmapData = new BitmapData(100, 60, false, 0xFFFFAA00); trace(bmd1.compare(bmd2)); // -4
Параметры
otherBitmapData:BitmapData — Объект BitmapData, сравниваемый с исходным объектом BitmapData.
|
Object — Если два объекта BitmapData имеют одинаковые размеры (ширину и высоту), метод возвращает новый объект BitmapData с различиями между двумя объектами (см. главное обсуждение темы). Если объекты BitmapData идентичны, метод возвращает значение 0. Если объекты BitmapData имеют разную ширину, метод возвращает значение -3. Если объекты BitmapData имеют разную высоту, метод возвращает значение -4.
|
TypeError — Объект otherBitmapData имеет значение null.
|
import flash.display.Bitmap; import flash.display.BitmapData; var bmd1:BitmapData = new BitmapData(50, 50, true, 0xFFFFAA00); var bmd2:BitmapData = new BitmapData(50, 50, true, 0xCCFFAA00); var diffBmpData:BitmapData = BitmapData(bmd1.compare(bmd2)); var diffValue:String = diffBmpData.getPixel32(1, 1).toString(16); trace (diffValue); // 33ffffff var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 60;
copyChannel | () | метод |
public function copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Переносит данные из одного канала отдельного объекта BitmapData или текущего объекта BitmapData в канал текущего объекта BitmapData. Все данные в других каналах конечного объекта BitmapData сохраняются.
Исходным или конечным значением канала может быть одно из следующих:
BitmapDataChannel.RED
BitmapDataChannel.GREEN
BitmapDataChannel.BLUE
BitmapDataChannel.ALPHA
Параметры
sourceBitmapData:BitmapData — Вводное растровое изображение для использования. Исходным изображением может быть другой объект BitmapData, или оно может ссылаться на текущий объект BitmapData.
| |
sourceRect:Rectangle — Исходный объект Rectangle. Чтобы скопировать только данные каналов из меньшей по размеру области растрового изображения, задайте исходный прямоугольник, размер которого меньше общего размера объекта BitmapData.
| |
destPoint:Point — Целевой объект Point, представляющий верхний левый угол прямоугольной области, в которую помещаются новые данные канала. Чтобы скопировать только данные канала из одной области в другую в конечном изображении, укажите другую точку вместо исходной (0,0).
| |
sourceChannel:uint — Исходный канал. Используйте значение класса BitmapDataChannel (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN , BitmapDataChannel.ALPHA ).
| |
destChannel:uint — Целевой канал. Используйте значение класса BitmapDataChannel (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN , BitmapDataChannel.ALPHA ).
|
TypeError — Объекты sourceBitmapData, sourceRect и destPoint имеют значение null.
|
См. также
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00FF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd.copyChannel(bmd, rect, pt, BitmapDataChannel.RED, BitmapDataChannel.BLUE); var bm:Bitmap = new Bitmap(bmd); this.addChild(bm);
copyPixels | () | метод |
public function copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Представляет собой процедуру быстрой обработки точек изображений без растяжения, поворота и цветовых эффектов. Этот метод копирует прямоугольную область исходного изображения в прямоугольную область того же размера в точке назначения конченого объекта BitmapData.
Если включены параметры alphaBitmap
и alphaPoint
, можно использовать вторичное изображение в качестве источника альфа-канала для исходного изображения. Если исходное изображение имеет данные альфа-канала, то для переноса пикселов из исходного изображения в конечное используются оба набора данных альфа-канала. Параметр alphaPoint
— это точка на альфа-изображении, соответствующая верхнему левому углу исходного прямоугольника. Все пикселы, не находящиеся в области пересечения исходного изображения и альфа-изображения, не копируются в конечное изображение.
Свойство mergeAlpha
контролирует, используется или нет альфа-канал при копировании одного прозрачного изображения в другое прозрачное изображение. Чтобы копировать пикселы с данными альфа-канала, задайте свойству mergeAlpha
значение true
. По умолчанию свойство mergeAlpha
имеет значение false
.
Параметры
sourceBitmapData:BitmapData — Вводное растровое изображение, из которого копируются пикселы. Исходным изображением может быть другой экземпляр BitmapData, или оно может ссылаться на текущий экземпляр BitmapData.
| |
sourceRect:Rectangle — Прямоугольник, определяющий область исходного изображения, которое будет использоваться для ввода.
| |
destPoint:Point — Точка назначения, представляющая верхний левый угол прямоугольной области, в которую помещаются новые пикселы канала.
| |
alphaBitmapData:BitmapData (default = null ) — Вторичный источник альфа-канала объекта BitmapData.
| |
alphaPoint:Point (default = null ) — Точка в источнике альфа-канала объекта BitmapData, соответствующая верхнему левому углу параметра sourceRect .
| |
mergeAlpha:Boolean (default = false ) — Чтобы использовать альфа-канал, нужно задать значение true . Чтобы копировать пикселы без альфа-канала, нужно задать значение false .
|
TypeError — Объекты sourceBitmapData, sourceRect и destPoint имеют значение null.
|
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(40, 40, false, 0x000000FF); var bmd2:BitmapData = new BitmapData(80, 40, false, 0x0000CC44); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(10, 10); bmd2.copyPixels(bmd1, rect, pt); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 50;
dispose | () | метод |
public function dispose():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Очищает память, задействованную для хранения объекта BitmapData.
Когда для изображения вызывается метод dispose()
, его ширина и высота получают значение 0. Все последующие вызовы методов и свойств данного экземпляра BitmapData заканчиваются неудачно и приводят к появлению исключения.
dispose()
(выдается исключение).import flash.display.BitmapData; var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x000000FF); trace(myBitmapData.getPixel(1, 1)); // 255 == 0xFF myBitmapData.dispose(); try { trace(myBitmapData.getPixel(1, 1)); } catch (error:Error) { trace(error); // ArgumentError }
draw | () | метод |
public function draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отображает исходный экранный объект source
поверх растрового изображения с помощью векторного средства визуализации проигрывателя Flash Player. Можно задать параметры matrix
, colorTransform
, blendMode
и clipRect
назначения, чтобы управлять процессом визуализации. Также можно указать, должно ли смягчаться растровое изображение при масштабировании (это применимо только если источником является объект BitmapData).
Этот метод напрямую соответствует тому, как рисуются объекты с помощью стандартного векторного средства визуализации в интерфейсе инструмента разработки.
Исходный экранный объект не использует свои примененные преобразования для этого вызова. Он обрабатывается в том виде, в котором представлен в библиотеке или файле: без преобразования матрицы, цвета и без режима наложения. Чтобы нарисовать экранный объект (например, фрагмент ролика) с помощью его собственных свойств преобразования, можно скопировать его объект свойства transform
в свойство transform
объекта Bitmap, использующего объект BitmapData.
Примечание. Объект source
и (в случае с объектами Sprite и MovieClip) все его дочерние объекты должны находиться в том же домене, что и вызывающий объект, или в SWF-файле, доступном вызывающему объекту посредством вызова метода Security.allowDomain()
. Если эти условия не соблюдаются, метод draw()
ничего не рисует.
Этот метод поддерживается через RTMP в Flash Player 9.0.115.0 и более поздних версий. Можно контролировать потоки на сервере Flash Media Server в сценарии, выполняемом на стороне сервера. Дополнительные сведения см. в разделах о свойствах Client.audioSampleAccess
и Client.videoSampleAccess
в документе Ссылка на языке ActionScript на стороне сервера для Adobe Flash Media Server.
Параметры
source:IBitmapDrawable — Экранный объект или объект BitmapData для рисования объекта BitmapData. Классы DisplayObject и BitmapData реализуют интерфейс IBitmapDrawable.
| |
matrix:Matrix (default = null ) — Объект Matrix, используемый для масштабирования, поворота и перемещения координат растрового изображения. Если не требуется применять преобразование матрицы в изображение, задайте для этого параметра идентификационную матрицу, созданную с помощью конструктора new Matrix() по умолчанию, или передайте значение null .
| |
colorTransform:ColorTransform (default = null ) — Объект ColorTransform, используемый для настройки значений цвета растрового изображения. Если объект не указан, цвета растрового изображения не преобразуются. Если вам необходимо передать этот параметр, но преобразовывать изображение не нужно, задайте для него объект ColorTransform, созданный с помощью конструктора new ColorTransform() по умолчанию.
| |
blendMode:String (default = null ) — Строковое значение класса flash.display.BlendMode, задающее режим наложения, которые будет применен к полученному растровому изображению.
| |
clipRect:Rectangle (default = null ) — Объект Rectangle, определяющий для рисования область исходного объекта. Если это значение не задано, то обрезка не производится и исходный объект рисуется полностью.
| |
smoothing:Boolean (default = false ) — Логическое значение, которое определяет, будет ли объект BitmapData смягчаться при масштабировании или повороте вследствие масштабирования или поворота в параметре matrix . Параметр smoothing применяется, только если параметром source является объект BitmapData. Если smoothing имеет значение false , повернутое или масштабированное изображение BitmapData может получиться нечетким или с зазубренными очертаниями. Например в следующих двух изображениях в качестве параметра source используется один и тот же объект BitmapData, но для левого параметр smoothing имеет значение true , а для правого — false .
Рисование с параметром |
ArgumentError — Параметр source не является объектом BitmapData или DisplayObject.
| |
SecurityError — Объект source и (в случае с объектами Sprite и MovieClip) все его дочерние объекты находятся не в том же домене, что и вызывающий объект, или не находятся в SWF-файле, доступном вызывающему объекту посредством вызова метода Security.allowDomain() .
| |
ArgumentError — Источник имеет значение null или не является действительным объектом IBitmapDrawable.
|
См. также
import flash.display.Bitmap; import flash.display.BitmapData; import flash.text.TextField; var tf:TextField = new TextField(); tf.text = "bitmap text"; var myBitmapData:BitmapData = new BitmapData(80, 20); myBitmapData.draw(tf); var bmp:Bitmap = new Bitmap(myBitmapData); this.addChild(bmp);
fillRect | () | метод |
public function fillRect(rect:Rectangle, color:uint):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Заполняет прямоугольную область пикселов заданным цветом ARGB.
Параметры
rect:Rectangle — Прямоугольная область для заливки.
| |
color:uint — Цвет ARGB для заливки области. Цвета ARGB часто указываются в шестнадцатеричном формате, например 0xFF336699.
|
TypeError — Объект rect имеет значение null.
|
См. также
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x0000FF); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm);
floodFill | () | метод |
public function floodFill(x:int, y:int, color:uint):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Выполняет операцию заливки изображения, начиная с точки с координатами (x, y) и заполняя область определенным цветом. Метод floodFill()
напоминает инструмент "Ведро с краской" в различных программах для рисования. Цвет представляет собой цвет ARGB, содержащий информацию альфа-канала и данные цвета.
Параметры
x:int — Координата x изображения.
| |
y:int — Координата у изображения.
| |
color:uint — Цвет ARGB для заливки.
|
(10, 10)
, в которой все цвета граничат с цветом в данной точки — с красным.import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var myBitmapData:BitmapData = new BitmapData(40, 40, false, 0x0000FF00); var rect:Rectangle = new Rectangle(0, 0, 20, 20); myBitmapData.fillRect(rect, 0x000000FF); rect = new Rectangle(15, 15, 25, 25); myBitmapData.fillRect(rect, 0x000000FF); myBitmapData.floodFill(10, 10, 0x00FF0000); var bm:Bitmap = new Bitmap(myBitmapData); addChild(bm);
generateFilterRect | () | метод |
public function generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter):Rectangle
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет целевой прямоугольник, на который воздействует вызов метода applyFilter()
, при наличии объекта BitmapData, исходного прямоугольника и объекта фильтра.
Например, размывающий фильтр обычно воздействует на область, размер которой превышает размер исходного изображения. Изображение размером 100 x 200 пикселов, отфильтрованное с использованием экземпляра BlurFilter по умолчанию, где blurX = blurY = 4
создает целевой прямоугольник с координатами (-2,-2,104,204)
. Метод generateFilterRect()
позволяет заранее определять размер целевого прямоугольника, чтобы соответствующим образом изменить его размеры перед применением фильтра.
Некоторые фильтры обрезают целевой прямоугольник по размеру исходного изображения. Например, внутренний фильтр DropShadow
не увеличивает размер по сравнению с исходным изображением. В данном API-интерфейсе объект BitmapData используется в качестве исходных границ, а не исходного параметра rect
.
Параметры
sourceRect:Rectangle — Прямоугольник, определяющий область исходного изображения, которое будет использоваться для ввода.
| |
filter:BitmapFilter — Объект фильтра, используемый для вычисления конечного прямоугольника.
|
Rectangle — Целевой прямоугольник, вычисленный с использованием изображения, параметра sourceRect и фильтра.
|
TypeError — Объекты sourceRect и filter имеют значение null.
|
generateFilterRect()
используется для определения прямоугольной области, которую будет занимать изображение после применения размывающего фильтра. Результаты метода generateFilterRect()
выводятся с помощью функции trace()
.import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.filters.BlurFilter; var bmd:BitmapData = new BitmapData(80, 30, false, 0xFFCC00); var rect:Rectangle = new Rectangle(10, 10, 40, 10); bmd.fillRect(rect, 0xFF0000); var pt:Point = new Point(10, 10); var filter:BlurFilter = new BlurFilter(); trace(bmd.generateFilterRect(rect, filter)); // (x=8, y=8, w=44, h=14) bmd.applyFilter(bmd, rect, pt, filter); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
generateFilterRect()
не применяет фильтр. Вызовите метод applyFilter()
, чтобы применить фильтр. getColorBoundsRect | () | метод |
public function getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет прямоугольный участок, полностью охватывающий все пикселы заданного цвета в пределах растрового изображения (если параметру findColor
присвоено значение true
), либо полностью охватывает все пикселы, не содержащие заданный цвет (если параметру findColor
присвоено значение false
).
Например, если имеется исходное изображение и требуется определить прямоугольник изображения, содержащий ненулевой альфа-канал, передайте в качестве параметров {mask: 0xFF000000, color: 0x00000000}
. Если параметру findColor
задано значение true
, в пределах всего изображения ведется поиск границ с пикселами, для которых (value & mask) == color
(где value
— это значение цвета пиксела). Если параметру findColor
задано значение false
, в пределах всего изображения ведется поиск границ пикселов, для которых (value & mask)!= color
(где value
— это значение цвета пиксела). Чтобы определить белое пространство вокруг изображения, передайте {mask: 0xFFFFFFFF, color: 0xFFFFFFFF}
, чтобы найти границы небелых пикселов.
Параметры
mask:uint — Шестнадцатеричное значение, указывающее рассматриваемые биты цвета ARGB. Значение цвета объединяется с данным шестнадцатеричным значением с использованием оператора & (побитовое И).
| |
color:uint — Шестнадцатеричное значение, задающее цвет ARGB для соответствия (если findColor имеет значение true ) или не соответствия (если findColor имеет значение false ).
| |
findColor:Boolean (default = true ) — Если задано значение true , то возвращаются границы значения цвета в изображения. Если задано значение false , возвращаются границы области изображения, в которой этого цвета нет.
|
Rectangle — Область изображения, заполненная заданным цветом.
|
getColorBoundsRect()
для определения прямоугольника, содержащего красные пикселы (0xFF0000), после чего тот же метод вызывается для определения прямоугольника, пикселы которого не красные (параметру findColor
задается значение false
.import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFFFFFF); var rect:Rectangle = new Rectangle(0, 0, 80, 20); bmd.fillRect(rect, 0xFF0000); var maskColor:uint = 0xFFFFFF; var color:uint = 0xFF0000; var redBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, true); trace(redBounds); // (x=0, y=0, w=80, h=20) var notRedBounds:Rectangle = bmd.getColorBoundsRect(maskColor, color, false); trace(notRedBounds); // (x=0, y=20, w=80, h=20) var bm:Bitmap = new Bitmap(bmd); addChild(bm);
getPixel | () | метод |
public function getPixel(x:int, y:int):uint
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает целое число, представляющее RGB-значение пиксела из объекта BitmapData в конкретной точке (x, y). Метод getPixel()
возвращает неумноженное значение пиксела. Информация альфа-канала не возвращается.
Все пикселы в объекте BitmapData сохраняются как предварительно умноженные значения цвета. В предварительно умноженном пикселе изображения значения красного, зеленого и синего канала уже умножены на данные альфа-канала. Например, если значение альфа-канала равно нулю, то значения RGB-каналов также равны нулю независимо от их значений до умножения. Потеря данных может вызвать проблемы при выполнении операций. Все методы BitmapData принимают и возвращают неумноженные значения. Перед тем как возвращать значение, внутреннее представление пиксела преобразуется из предварительно умноженного в неумноженное. Во время операции настройки, значение пиксела предварительно умножается, и только после этого настраивается необработанный пиксел изображения.
Параметры
x:int — Положение пиксела по оси x.
| |
y:int — Положение пиксела по оси у.
|
uint — Число, представляющее RGB-значение пиксела. Если координаты (x, y) находятся за пределами изображения, метод возвращает 0.
|
См. также
getPixel()
определяется значение цвета для верхнего левого пиксела.import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, false, 0xFF0000); var pixelValue:uint = bmd.getPixel(1, 1); trace(pixelValue.toString(16)); // ff0000;
getPixel32 | () | метод |
public function getPixel32(x:int, y:int):uint
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает значение цвета ARGB, содержащее данные альфа-канала и данные RGB. Этот метод подобен методу getPixel()
, который возвращает RGB-цвет без данных альфа-канала.
Все пикселы в объекте BitmapData сохраняются как предварительно умноженные значения цвета. В предварительно умноженном пикселе изображения значения красного, зеленого и синего канала уже умножены на данные альфа-канала. Например, если значение альфа-канала равно нулю, то значения RGB-каналов также равны нулю независимо от их значений до умножения. Потеря данных может вызвать проблемы при выполнении операций. Все методы BitmapData принимают и возвращают неумноженные значения. Перед тем как возвращать значение, внутреннее представление пиксела преобразуется из предварительно умноженного в неумноженное. Во время операции настройки, значение пиксела предварительно умножается, и только после этого настраивается необработанный пиксел изображения.
Параметры
x:int — Положение пиксела по оси x.
| |
y:int — Положение пиксела по оси у.
|
uint — Число, представляющее значение пиксела ARGB. Если координаты (x, y) находятся за пределами изображения, возвращается значение 0.
|
См. также
getPixel32()
определяется значение цвета в верхнем левом пикселе, после чего определяются шестнадцатеричные значения для каждого компонента цвета (альфа-канал, красный, зеленый и синий).import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 40, true, 0xFF44AACC); var pixelValue:uint = bmd.getPixel32(1, 1); var alphaValue:uint = pixelValue >> 24 & 0xFF; var red:uint = pixelValue >> 16 & 0xFF; var green:uint = pixelValue >> 8 & 0xFF; var blue:uint = pixelValue & 0xFF; trace(alphaValue.toString(16)); // ff trace(red.toString(16)); // 44 trace(green.toString(16)); // aa trace(blue.toString(16)); // cc
getPixels | () | метод |
public function getPixels(rect:Rectangle):ByteArray
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Формирует байтовый массив из прямоугольного участка пиксельных данных. Записывает неподписанное целое число (32-разрядное неумноженное значение пиксела) для каждого пиксела в байтовом массиве.
Параметры
rect:Rectangle — Прямоугольная область в текущем объекте BitmapData.
|
ByteArray — Объект ByteArray, представляющий пикселы в данном объекте Rectangle.
|
TypeError — Объект rect имеет значение null.
|
См. также
getPixels()
объект ByteArray заполняется пиксельными значениями объекта BitmapData.import flash.display.BitmapData; import flash.geom.Rectangle; import flash.utils.ByteArray; var bmd:BitmapData = new BitmapData(80, 40, true); var seed:int = int(Math.random() * int.MAX_VALUE); bmd.noise(seed); var bounds:Rectangle = new Rectangle(0, 0, bmd.width, bmd.height); var pixels:ByteArray = bmd.getPixels(bounds);
getVector | () | метод |
flash10 function getVector(rect:Rectangle):Vector
DOCUMENT ME
Параметры
rect:Rectangle |
Vector |
histogram | () | метод |
flash10 function histogram(hRect:Rectangle = null):Vector
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Вычисляет гистограмму на 256 секций для объекта BitmapData. Функция возвращает вектор из четырех численных векторов. Эти четыре численных вектора представляют красный, зеленый, синий и альфа-компоненты соответственно. Каждый численный вектор содержит 256 значений, представляющих счетчик заполнения значения отдельного компонента, от 0 до 255.
Параметры
hRect:Rectangle (default = null ) — Область объекта BitmapData, которую предполагается использовать.
|
Vector |
hitTest | () | метод |
public function hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Выполняет распознавание на уровне пикселов между одним растровым изображением и точкой, прямоугольником или другим растровым изображением. Попаданием считается наложение точки или прямоугольника на непрозрачный пиксел или два накладывающихся непрозрачных пиксела. При тестировании нажатия растягивание, поворот и другие преобразования обоих объектов не учитываются.
Если изображение непрозрачное, то при использовании данного метода оно считается полностью непрозрачным прямоугольником. Для тестирования нажатия, при котором учитывается прозрачность, оба изображения должны быть прозрачными. Когда тестируются два прозрачных изображения, параметры порога значений альфа-канала контролируют, какие значения альфа-канала (от 0 до 255) считаются непрозрачными.
Параметры
firstPoint:Point — Положение верхнего левого угла изображения BitmapData в произвольном координатном пространстве. То же координатное пространство используется при определении параметра secondBitmapPoint .
| |
firstAlphaThreshold:uint — Самое низкое значение альфа-канала, рассматриваемое как непрозрачное, для данной проверки попадания.
| |
secondObject:Object — Объект Rectangle, Point, Bitmap или BitmapData.
| |
secondBitmapDataPoint:Point (default = null ) — Точка, определяющая местоположение пиксела во втором объекте BitmapData. Используйте этот параметр, только когда значением secondObject является объект BitmapData.
| |
secondAlphaThreshold:uint (default = 1 ) — Самое низкое значение альфа-канала, рассматриваемое как непрозрачное во втором объекте BitmapData. Используйте этот параметр, только когда значением secondObject является BitmapData и оба объекта BitmapData прозрачные.
|
Boolean — Имеет значение true при наличии совпадений; в противном случае — false .
|
ArgumentError — Параметр secondObject не является объектом Point, Rectangle, Bitmap или BitmapData.
| |
TypeError — Объект firstPoint имеет значение null.
|
hitTest()
с объектом Point в качестве secondObject
. При первом вызове объект Point определяет верхний левый угол объекта BitmapData, который является прозрачным, а при втором вызове объект Point определяет центр объекта BitmapData, который является непрозрачным.import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(80, 80, true, 0x00000000); var rect:Rectangle = new Rectangle(20, 20, 40, 40); bmd1.fillRect(rect, 0xFF0000FF); var pt1:Point = new Point(1, 1); trace(bmd1.hitTest(pt1, 0xFF, pt1)); // false var pt2:Point = new Point(40, 40); trace(bmd1.hitTest(pt1, 0xFF, pt2)); // true
lock | () | метод |
public function lock():void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Блокирует изображение, чтобы любые объекты, ссылающиеся на объект BitmapData, например объекты Bitmap, не обновлялись при изменении данного объекта BitmapData. Чтобы повысить производительность, используйте этот метод вместе с методом unlock()
до или после многочисленных вызовов метода setPixel()
или setPixel32()
.
См. также
bitmapData
объекта Bitmap с именем picture
. Затем вызывается метод lock()
перед вызовом сложной пользовательской функции, complexTransformation()
, изменяющей объект BitmapData. (Объект picture
и функция complexTransformation()
в этом примере не определяются.) Даже если функция complexTransformation()
обновляет свойство bitmapData
объекта picture
, изменения не отображаются, пока код не вызовет метод unlock()
объекта bitmapData
.import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData;
merge | () | метод |
public function merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Проводит наложение каналов исходного изображения на целевое изображение. Для каждого канала и каждого пиксела вычисляется новое значение на основе значений каналов исходных и целевых пикселов. Например, в красном канале новое значение вычисляется следующим образом (где redSrc
— это значение красного канала для пиксела в исходном изображении, а redDest
— это значение красного канала в соответствующем пикселе целевого изображения):
new redDest = [(redSrc * redMultiplier) + (redDest * (256 - redMultiplier))] / 256;
Значения redMultiplier
, greenMultiplier
, blueMultiplier
и alphaMultiplier
являются множителями, используемыми для канала каждого цвета. Используйте шестнадцатеричное значение от 0
до 0x100
(256), где 0
обозначает, что в результате используется полное значение целевого изображения, а 0x100
— что используется полное значение исходного изображения, а промежуточные числа означают, что используется наложение (так 0x80
указывает на 50-процентное наложение).
Параметры
sourceBitmapData:BitmapData — Вводное растровое изображение для использования. Исходным изображением может быть другой объект BitmapData, или оно может ссылаться на текущий объект BitmapData.
| |
sourceRect:Rectangle — Прямоугольник, определяющий область исходного изображения, которое будет использоваться для ввода.
| |
destPoint:Point — Точка в целевом изображении (текущем экземпляре BitmapData), соответствующая правому левому углу исходного прямоугольника.
| |
redMultiplier:uint — Шестнадцатеричное значение, на которое будет умножаться значение красного канала.
| |
greenMultiplier:uint — Шестнадцатеричное значение, на которое будет умножаться значение зеленого канала.
| |
blueMultiplier:uint — Шестнадцатеричное значение, на которое будет умножаться значение синего канала.
| |
alphaMultiplier:uint — Шестнадцатеричное значение, на которое будет умножаться значение альфа-канала.
|
TypeError — Объекты sourceBitmapData, sourceRect и destPoint имеют значение null.
|
merge()
, накладывающий пикселы второго объекта BitmapData на первый объект BitmapData, но только в заданной прямоугольной области:import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var bmd1:BitmapData = new BitmapData(100, 80, true, 0xFF00FF00); var bmd2:BitmapData = new BitmapData(100, 80, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 20, 20); var pt:Point = new Point(20, 20); var mult:uint = 0x80; // 50% bmd1.merge(bmd2, rect, pt, mult, mult, mult, mult); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110;
noise | () | метод |
public function noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Заполняет изображение пикселами, представляющими собой белый шум.
Параметры
randomSeed:int — Начальное значение, используемое для создания случайных чисел. Если не изменять остальных параметров, можно создавать различные псевдослучайные результаты, изменяя начальное значение случайной последовательности. Функция шума является функцией наложения, а не настоящей функцией создания случайных чисел, поэтому при использовании одного и того же начального числа она каждый раз дает одинаковые результаты.
| |
low:uint (default = 0 ) — Самое низкое значение для создания случайных чисел для каждого канала (от 0 до 255).
| |
high:uint (default = 255 ) — Самое высокое значение для создания случайных чисел для каждого канала (от 0 до 255).
| |
channelOptions:uint (default = 7 ) — Число, которое может представлять собой любую комбинацию значений четырех каналов цвета (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN и BitmapDataChannel.ALPHA ). Можно использовать логический оператор ИЛИ (| ) для комбинирования значений каналов.
| |
grayScale:Boolean (default = false ) — Логическое значение. Если имеет значение true , создается изображение с использованием серой шкалы путем присвоения всем цветовым каналам одного и того же значения. На значение альфа-канала не воздействует задание значения true для этого параметра.
|
См. также
noise()
. Однако параметру grayscale
задано значение false
для вызова метода noise()
первого объекта и true
для вызова метода noise()
второго объекта.import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; var bmd1:BitmapData = new BitmapData(80, 80); var bmd2:BitmapData = new BitmapData(80, 80); var seed:int = int(Math.random() * int.MAX_VALUE); bmd1.noise(seed, 0, 0xFF, BitmapDataChannel.RED, false); bmd2.noise(seed, 0, 0xFF, BitmapDataChannel.RED, true); var bm1:Bitmap = new Bitmap(bmd1); this.addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); this.addChild(bm2); bm2.x = 90;
paletteMap | () | метод |
public function paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Переназначает значения цветовых каналов в изображении, содержащем до четырех массивов данных цветовой палитры, по одному для каждого канала.
Проигрыватель Flash Player выполняет следующие шаги для создания конечного изображения:
redArray
, greenArray
, blueArray
и alphaArray
. Каждый из этих четырех массивов должен содержать 256 значений. Этот метод может поддерживать эффекты, создаваемые с использованием разных каналов. Каждый вводный массив содержит полные 32-разрядные значения, поэтому при складывании значений не происходит смещения. Эта подпрограмма не поддерживает фиксацию по каналам.
Если для канала не задан массив, то канал цвета копируется из исходного изображения в целевое.
Этот метод можно использовать для самых разнообразных эффектов, таких как общее наложение палитры (преобразование одного канала для создания псевдо-цветного изображения). Этот метод можно использовать для различных расширенных алгоритмов манипуляций с цветом, таких как использование гаммы, кривых, уровней и квантизации.
Параметры
sourceBitmapData:BitmapData — Вводное растровое изображение для использования. Исходным изображением может быть другой объект BitmapData, или оно может ссылаться на текущий экземпляр BitmapData.
| |
sourceRect:Rectangle — Прямоугольник, определяющий область исходного изображения, которое будет использоваться для ввода.
| |
destPoint:Point — Точка в целевом изображении (текущем объекте BitmapData), соответствующая правому левому углу исходного прямоугольника.
| |
redArray:Array (default = null ) — Если redArray не имеет значение null , красный = redArray[исходное значение красного], в противном случае красный = исходное значение красного .
| |
greenArray:Array (default = null ) — Если greenArray не имеет значение null , зеленый = greenArray[исходное значение зеленого], в противном случае зеленый = исходное значение зеленого.
| |
blueArray:Array (default = null ) — Если blueArray не имеет значение null , синий = blueArray[исходное значение синего], в противном случае синий = исходное значение синего .
| |
alphaArray:Array (default = null ) — Если alphaArray не имеет значение null , альфа = alphaArray[исходное значение альфа-канала], в противном случае альфа = исходное значение альфа-канала .
|
TypeError — Объекты sourceBitmapData, sourceRect и destPoint имеют значение null.
|
paletteMap()
, чтобы поменять местами красный и зеленый в нижней прямоугольной области объекта BitmapData.import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; var myBitmapData:BitmapData = new BitmapData(80, 80, false, 0x00FF0000); myBitmapData.fillRect(new Rectangle(20, 20, 40, 40), 0x0000FF00); var redArray:Array = new Array(256); var greenArray:Array = new Array(256); for(var i:uint = 0; i < 255; i++) { redArray[i] = 0x00000000; greenArray[i] = 0x00000000; } redArray[0xFF] = 0x0000FF00; greenArray[0xFF] = 0x00FF0000; var bottomHalf:Rectangle = new Rectangle(0, 0, 100, 40); var pt:Point = new Point(0, 0); myBitmapData.paletteMap(myBitmapData, bottomHalf, pt, redArray, greenArray); var bm1:Bitmap = new Bitmap(myBitmapData); addChild(bm1);
perlinNoise | () | метод |
public function perlinNoise(baseX:Number, baseY:Number, numOctaves:uint, randomSeed:int, stitch:Boolean, fractalNoise:Boolean, channelOptions:uint = 7, grayScale:Boolean = false, offsets:Array = null):void
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает изображение с шумом Перлина.
Алгоритм создания шума Перлина интерполирует и объединяет отдельные функции случайного шума (называемые октавами) в одну функцию, создающую более естественный случайный шум. Как и в музыкальных октавах, каждая функция октавы удваивает частоту предыдущей. Шум Перлина описывается как "фрактальная сумма шума", так как он объединяет несколько наборов шумовых данных с разным уровнем детализации.
Функции шума Перлина можно использовать для симуляции естественных явлений и ландшафтов, таких как текстура древесины, облака и горные хребты. В большинстве случаев результат функции шума Перлина не отображается непосредственно: он используется для доработки других изображений, придавая им псевдослучайные вариации.
Простые функции цифрового белого шума часто дают изображения с резко контрастирующими точками. Такое явление редко встречается в естественных условиях. Алгоритм шума Перлина объединяет несколько функций шума с разным уровнем детализации. В результате чего разница между значениями соседних пикселов становится не столь большой.
Примечание. Алгоритм шума Перлина назван в честь Кена Перлина, который создал его, работая над компьютерной графикой для фильма Tron в 1982 году. В 1997 году Перлин получил премию Американской академии киноискусств за технические достижения.
Параметры
baseX:Number — Частота, используемая по оси x. Например, чтобы создать объект с шумом для изображения размером 64 x 128, передайте 64 для значения baseX .
| |
baseY:Number — Частота для использования в направлении у. Например, чтобы создать объект с шумом для изображения размером 64 x 128, передайте 128 для значения baseY .
| |
numOctaves:uint — Количество октав или индивидуальных функций шума, которые необходимо объединить с целью создания шума. Чем больше октав, тем более детальное изображение создается. Также чем больше октав, тем больше времени требуется на обработку.
| |
randomSeed:int — Начальное значение, используемое для создания случайных чисел. Если не изменять остальных параметров, можно создавать различные псевдослучайные результаты, изменяя начальное значение случайной последовательности. Функция шума Перлина является функцией наложения, а не настоящей функцией создания случайных чисел, поэтому при использовании одного и того же начального числа она каждый раз дает одинаковые результаты.
| |
stitch:Boolean — Логическое значение. При значении true метод пытается смягчить края перехода изображения, чтобы создать бесшовную текстуру для мозаичной заливки растровым изображением.
| |
fractalNoise:Boolean — Логическое значение. При значении true метод создает фрактальный шум, в противном случае создается турбулентность. Изображение с турбулентностью имеет видимые прерывания градиента, благодаря чему оно больше подходит для более резких визуальных эффектов, например для создания языков пламени или морских волн.
| |
channelOptions:uint (default = 7 ) — Число, которое может представлять собой любую комбинацию значений четырех каналов цвета (BitmapDataChannel.RED , BitmapDataChannel.BLUE , BitmapDataChannel.GREEN и BitmapDataChannel.ALPHA ). Можно использовать логический оператор ИЛИ (| ) для комбинирования значений каналов.
| |
grayScale:Boolean (default = false ) — Логическое значение. При значении true создается изображение с использованием серой шкалы путем присвоения каналам красного, зеленого и синего цветов идентичных значений. Значение альфа-канала остается без изменений, если данному параметру задано значение true .
| |
offsets:Array (default = null ) — Массив точек, соответствующий смещениям в направлениях x и y для каждой октавы. Изменяя значения смещения, можно плавно прокручивать слои изображения с шумом Перлина. Каждая точка в массиве смещения применяется к функции шума конкретной октавы.
|
perlinNoise()
для создания эффекта красной и синей акварели.import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(200, 200, false, 0x00CCCCCC); var seed:Number = Math.floor(Math.random() * 10); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bmd.perlinNoise(100, 80, 6, seed, false, true, channels, false, null); var bm:Bitmap = new Bitmap(bmd); addChild(bm);
pixelDissolve | () | метод |
public function pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Выполняет растворение точек от исходного изображения до целевого или для одного изображения. Проигрыватель Flash Player использует значение randomSeed
для выполнения случайного растворения точек. Возвращаемое значение функции должно передаваться при последующих вызовах для продолжения растворения точек вплоть до завершения операции.
Если исходное изображение отличается от целевого, пикселы копируются из первого во второе с использованием всех свойств. Этот процесс позволяет выполнить растворение от пустого изображения до заполненного.
Если исходное и целевое изображения одинаковы, пикселы заполняются с помощью параметра color
. Этот процесс позволяет выполнить растворение из заполненного изображения. В данном режиме целевой параметр point
игнорируется.
Параметры
sourceBitmapData:BitmapData — Вводное растровое изображение для использования. Исходным изображением может быть другой объект BitmapData, или оно может ссылаться на текущий экземпляр BitmapData.
| |
sourceRect:Rectangle — Прямоугольник, определяющий область исходного изображения, которое будет использоваться для ввода.
| |
destPoint:Point — Точка в целевом изображении (текущем экземпляре BitmapData), соответствующая правому левому углу исходного прямоугольника.
| |
randomSeed:int (default = 0 ) — Начальное значение случайного числа, используемое для начала растворения точек.
| |
numPixels:int (default = 0 ) — По умолчанию составляет 1/30 исходной области (ширина x высота).
| |
fillColor:uint (default = 0 ) — Значение цвета ARGB, используемое для заливки пикселов, для которых исходное значение равно целевому.
|
int — Новое начальное значение случайного числа для последующих вызовов.
|
TypeError — Объекты sourceBitmapData, sourceRect и destPoint имеют значение null.
| |
TypeError — numPixels имеет отрицательное значение.
|
pixelDissolve()
используется для преобразования серого объекта BitmapData в красный: одновременно растворяется по 40 пикселов до тех пор, пока не будет изменен цвет всех пикселов.import flash.display.BitmapData; import flash.display.Bitmap; import flash.geom.Point; import flash.geom.Rectangle; import flash.utils.Timer; import flash.events.TimerEvent; var bmd:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC); var bitmap:Bitmap = new Bitmap(bmd); addChild(bitmap); var tim:Timer = new Timer(20); tim.start(); tim.addEventListener(TimerEvent.TIMER, timerHandler); function timerHandler(event:TimerEvent):void { var randomNum:Number = Math.floor(Math.random() * int.MAX_VALUE); dissolve(randomNum); } function dissolve(randomNum:Number):void { var rect:Rectangle = bmd.rect; var pt:Point = new Point(0, 0); var numberOfPixels:uint = 100; var red:uint = 0x00FF0000; bmd.pixelDissolve(bmd, rect, pt, randomNum, numberOfPixels, red); var grayRegion:Rectangle = bmd.getColorBoundsRect(0xFFFFFFFF, 0x00CCCCCC, true); if(grayRegion.width == 0 && grayRegion.height == 0 ) { tim.stop(); } }
scroll | () | метод |
public function scroll(x:int, y:int):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Прокручивает изображение на заданное число точек (x, y). Края за пределами области прокрутки остаются без изменений.
Параметры
x:int — Число точек для прокрутки по горизонтали.
| |
y:int — Число точек для прокрутки по вертикали.
|
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); var rect:Rectangle = new Rectangle(0, 0, 40, 40); bmd.fillRect(rect, 0xFFFF0000); var bm:Bitmap = new Bitmap(bmd); addChild(bm); trace (bmd.getPixel32(50, 20).toString(16)); // ffcccccccc bmd.scroll(30, 0); trace (bmd.getPixel32(50, 20).toString(16)); // ffff0000
setPixel | () | метод |
public function setPixel(x:int, y:int, color:uint):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает одиночный пиксел объекта BitmapData. При выполнении этой операции сохраняется текущее значение альфа-канала пиксела изображения. Значение параметра RGB-цвета обрабатывается как неумноженное значение цвета.
Примечание. Для повышения производительности при многократном использовании метода setPixel()
или setPixel32()
вызовите метод lock()
перед тем, как вызывать setPixel()
или setPixel32()
, а по завершении внесения изменений в пикселы, вызовите метод unlock()
. Эта процедура не позволяет объектам, ссылающимся на данный экземпляр BitmapData, обновляться, пока не будет завершено изменение пикселов.
Параметры
x:int — Положение по оси x пиксела, значение которого меняется.
| |
y:int — Положение по оси у пиксела, значение которого меняется.
| |
color:uint — Полученный RGB-цвет пиксела.
|
См. также
setPixel()
рисуется красная линия в объекте BitmapData.import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 80, false, 0xCCCCCC); for (var i:uint = 0; i < 80; i++) { var red:uint = 0xFF0000; bmd.setPixel(i, 40, red); } var bm:Bitmap = new Bitmap(bmd); addChild(bm);
setPixel32 | () | метод |
public function setPixel32(x:int, y:int, color:uint):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает значения цвета и альфа-прозрачности отдельно взятой точки объекта BitmapData. Этот метод поход на метод setPixel()
. Основное различие заключается в том, что метод setPixel32()
принимает ARGB-значение цвета, содержащее информацию об альфа-канале.
Все пикселы в объекте BitmapData сохраняются как предварительно умноженные значения цвета. В предварительно умноженном пикселе изображения значения красного, зеленого и синего канала уже умножены на данные альфа-канала. Например, если значение альфа-канала равно нулю, то значения RGB-каналов также равны нулю независимо от их значений до умножения. Потеря данных может вызвать проблемы при выполнении операций. Все методы BitmapData принимают и возвращают неумноженные значения. Перед тем как возвращать значение, внутреннее представление пиксела преобразуется из предварительно умноженного в неумноженное. Во время операции настройки, значение пиксела предварительно умножается, и только после этого настраивается необработанный пиксел изображения.
Примечание. Для повышения производительности при многократном использовании метода setPixel()
или setPixel32()
вызовите метод lock()
перед тем, как вызывать setPixel()
или setPixel32()
, а по завершении внесения изменений в пикселы, вызовите метод unlock()
. Эта процедура не позволяет объектам, ссылающимся на данный экземпляр BitmapData, обновляться, пока не будет завершено изменение пикселов.
Параметры
x:int — Положение по оси x пиксела, значение которого меняется.
| |
y:int — Положение по оси у пиксела, значение которого меняется.
| |
color:uint — Полученный ARGB-цвет пиксела. Если растровое изображение непрозрачное, то альфа-составляющая значения цвета игнорируется.
|
См. также
setPixel32()
рисуется прозрачная красная линия в объекте BitmapData (значение альфа-канала = 0х60).import flash.display.Bitmap; import flash.display.BitmapData; var bmd:BitmapData = new BitmapData(80, 80, true, 0xFFCCCCCC); for (var i:uint = 0; i < 80; i++) { var red:uint = 0x60FF0000; bmd.setPixel32(i, 40, red); } var bm:Bitmap = new Bitmap(bmd); addChild(bm);
setPixels | () | метод |
public function setPixels(rect:Rectangle, inputByteArray:ByteArray):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Преобразует массив байт в прямоугольный участок пиксельных данных. Для каждого пиксела вызывается метод ByteArray.readUnsignedInt()
и записывается возвращаемое значение. Если массив байт заканчивается, прежде чем будет заполнен весь прямоугольник, функция возвращает исключение. Массив байт должен содержать 32-разрядные ARGB-значения пикселов. Перед считыванием пикселов и после него поиск по массиву байт не выполняется.
Параметры
rect:Rectangle — Задает прямоугольную область объекта BitmapData.
| |
inputByteArray:ByteArray — Объект ByteArray состоит из 32-разрядных неумноженных пиксельных значений, которые должны использоваться в прямоугольной области.
|
EOFError — Объект inputByteArray не содержит достаточно данных для заполнения области прямоугольника rect . Метод заполняет максимально возможное количество пикселов, а затем выдает исключение.
| |
TypeError — Объекты rect и inputByteArray имеют значение null.
|
См. также
getPixels()
и setPixels()
используются для копирования пикселов из одного объекта BitmapData в другой.import flash.display.Bitmap; import flash.display.BitmapData; import flash.utils.ByteArray; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(100, 100, true, 0xFFCCCCCC); var bmd2:BitmapData = new BitmapData(100, 100, true, 0xFFFF0000); var rect:Rectangle = new Rectangle(0, 0, 100, 100); var bytes:ByteArray = bmd1.getPixels(rect); bytes.position = 0; bmd2.setPixels(rect, bytes); var bm1:Bitmap = new Bitmap(bmd1); addChild(bm1); var bm2:Bitmap = new Bitmap(bmd2); addChild(bm2); bm2.x = 110;
setVector | () | метод |
flash10 function setVector(rect:Rectangle, inputVector:Vector):void
Параметры
rect:Rectangle | |
inputVector:Vector |
threshold | () | метод |
public function threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Сопоставляет пиксельные значения в изображении с заданным пороговым значением и присваивает пикселам, прошедшим проверку, новые цветовые значения. С помощью метода threshold()
можно изолировать и заменить диапазоны в изображении и выполнить другие логические операции над его пикселами.
Проверка метода threshold()
имеет следующую логику:
((pixelValue & mask) operation (threshold & mask))
, то установите color
для пиксела;copySource == true
, то пиксел получает соответствующее значение из sourceBitmap
.Параметр operation
задает оператор сравнения, используемый при пороговой проверке. Например, используя "==" в качестве параметра operation
можно изолировать конкретное цветовое значение в изображении. А с помощью операции {operation: "<", mask: 0xFF000000, threshold: 0x7F000000, color: 0x00000000}
можно сделать все целевые пикселы полностью прозрачными, если значение альфа-канала пиксела исходного изображения меньше 0x7F. Этот прием можно использовать для анимированных переходов и других эффектов.
Параметры
sourceBitmapData:BitmapData — Вводное растровое изображение для использования. Исходным изображением может быть другой объект BitmapData, или оно может ссылаться на текущий экземпляр BitmapData.
| |
sourceRect:Rectangle — Прямоугольник, определяющий область исходного изображения, которое будет использоваться для ввода.
| |
destPoint:Point — Точка в целевом изображении (текущем экземпляре BitmapData), соответствующая правому левому углу исходного прямоугольника.
| |
operation:String — В качестве строки String передается один из следующих операторов сравнения: "<", "<=", ">", ">=", "==", "!="
| |
threshold:uint — Значение, с которым сопоставляется каждый пиксел, чтобы узнать, больше он или равен порогу.
| |
color:uint (default = 0 ) — Значение цвета, которое получает пиксел при успешном прохождении пороговой проверки. Значение по умолчанию — 0x00000000.
| |
mask:uint (default = 0xFFFFFFFF ) — Маска используется с целью изоляции компонента цвета.
| |
copySource:Boolean (default = false ) — При значении true пиксельные значения из исходного изображения копируются в целевое, если пиксел не проходит пороговую проверку. При значении false исходное изображение не копируется, если пиксел не проходит пороговую проверку.
|
uint — Число измененных пикселов.
|
TypeError — Объекты sourceBitmapData, sourceRect, destPoint или operation имеют значение null.
| |
ArgumentError — Строка operation не является допустимой операцией.
|
perlinNoise()
для добавления сине-красного рисунка в объект BitmapData, а затем вызывается метод threshold()
, чтобы скопировать эти пикселы из первого объекта BitmapData во второй, заменяя пикселы, в которых значение красного больше 0x80 (50%), пикселами с прозрачным красным цветом(0x20FF0000).import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.geom.Point; import flash.geom.Rectangle; var bmd1:BitmapData = new BitmapData(200, 200, true, 0xFFCCCCCC); var seed:int = int(Math.random() * int.MAX_VALUE); var channels:uint = BitmapDataChannel.RED | BitmapDataChannel.BLUE; bmd1.perlinNoise(100, 80, 12, seed, false, true, channels, false, null); var bitmap1:Bitmap = new Bitmap(bmd1); addChild(bitmap1); var bmd2:BitmapData = new BitmapData(200, 200, true, 0xFFCCCCCC); var pt:Point = new Point(0, 0); var rect:Rectangle = new Rectangle(0, 0, 200, 200); var threshold:uint = 0x00800000; var color:uint = 0x20FF0000; var maskColor:uint = 0x00FF0000; bmd2.threshold(bmd1, rect, pt, ">", threshold, color, maskColor, true); var bitmap2:Bitmap = new Bitmap(bmd2); bitmap2.x = bitmap1.x + bitmap1.width + 10; addChild(bitmap2);
unlock | () | метод |
public function unlock(changeRect:Rectangle = null):void
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Разблокирует изображение, чтобы любые объекты, ссылающиеся на объект BitmapData, например объекты Bitmap, обновлялись при изменении данного объекта BitmapData. Чтобы повысить производительность, используйте этот метод вместе с методом lock()
до или после многочисленных вызовов метода setPixel()
или setPixel32()
.
Параметры
changeRect:Rectangle (default = null ) — Измененная область объекта BitmapData. Если не задать значения для данного параметра, измененной считается вся область объекта BitmapData. Для использования этого параметра требуется проигрыватель Flash Player версии 9.0.115.0 или более поздней.
|
См. также
bitmapData
объекта Bitmap с именем picture
. Затем вызывается метод lock()
перед вызовом сложной пользовательской функции, complexTransformation()
, изменяющей объект BitmapData. (Объект picture
и функция complexTransformation()
в этом примере не определяются.) Даже если функция complexTransformation()
обновляет свойство bitmapData
объекта picture
, изменения не отображаются, пока код не вызовет метод unlock()
объекта bitmapData
.import flash.display.BitmapData; var bitmapData:BitmapData = picture.bitmapData; bitmapData.lock(); bitmapData = complexTransformation(bitmapData); bitmapData.unlock(); picture.bitmapData = bitmapData;
threshold()
. Это можно сделать, выполнив следующие действия.
url
, описывающее местоположение и имя файла изображения.completeHandler()
.request
передается методу loader.load()
, который загружает изображение в память с помощью экранного объекта.completeHandler()
выполняет следующее:
duplicate
, который в свою очередь вызывает метод duplicateImage()
, создающий дубликат исходного изображения. duplicate
.operation
— применяет новый цвет, когда пороговое значение больше или равно исходному.threshold
— значение, с которым сравнивается каждый пиксел (в данном примере это светло-серый цвет со значением альфа-канала 0xCC). color
— цвет, который будет задан пикселам, проходящим пороговый тест, — в данном случае это сплошной желтый цвет.mask
— диаметрально противоположный цвет (прозрачный синий).copySource
— получает значение false
, указывающее на то, что значения пикселов не копируются в том случае, если пороговое значение не проходит. Это значение не имеет смысла, потому что изображение продублировано и изменяются только пикселы, прошедшие пороговый тест.threshold()
с использованием предшествующих переменных. В результате мы получаем уравнение порога: если (текущее значение пиксела & 0x000000FF) больше или равно (0xCCCCCCCC & 0x000000FF), то ему задается 0xFFFFFF00
. Примечания.
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.geom.Point; import flash.geom.Rectangle; import flash.net.URLRequest; public class BitmapDataExample extends Sprite { private var url:String = "Image.gif"; private var size:uint = 80; public function BitmapDataExample() { configureAssets(); } private function configureAssets():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var request:URLRequest = new URLRequest(url); loader.x = size * numChildren; loader.load(request); addChild(loader); } private function duplicateImage(original:Bitmap):Bitmap { var image:Bitmap = new Bitmap(original.bitmapData.clone()); image.x = size * numChildren; addChild(image); return image; } private function completeHandler(event:Event):void { var loader:Loader = Loader(event.target.loader); var image:Bitmap = Bitmap(loader.content); var duplicate:Bitmap = duplicateImage(image); var bitmapData:BitmapData = duplicate.bitmapData; var sourceRect:Rectangle = new Rectangle(0, 0, bitmapData.width, bitmapData.height); var destPoint:Point = new Point(); var operation:String = ">="; var threshold:uint = 0xCCCCCCCC; var color:uint = 0xFFFFFF00; var mask:uint = 0x000000FF; var copySource:Boolean = true; bitmapData.threshold(bitmapData, sourceRect, destPoint, operation, threshold, color, mask, copySource); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }