PDA

Просмотр полной версии : Внутренняя работа метода draw класса BitmapData


Alex_beginner
07.06.2008, 16:11
Уважаемые "жители" форума Flasher.ru!

У меня вопрос по поводу внутренней реализации и работы метода всем известного класса BitmapData - draw.

У меня есть код:

import flash.display.BitmapData;
import flash.geom.Matrix;
import flash.geom.Rectangle;

var monsterBMP:BitmapData = BitmapData.loadBitmap("ПЯТНИЦЦО");
var monsterDropBMP:BitmapData = new BitmapData( monsterBMP.width*3,monsterBMP.height,false);
//Задаем матрицу трансформаций
var matrixTransform:Matrix = new Matrix(1,0,1.1,1,0,0);
monsterDropBMP.draw(monsterBMP,matrixTransform, null,"normal",new Rectangle(0,0,600,300));
var monsterClip:MovieClip = this.createEmptyMovieClip("monsterClip",this.getNextHighestDepth());
monsterClip._x = 0;
monsterClip._y = 30;
monsterClip.attachBitmap(monsterDropBMP,this.getNextHighestDepth(),null,true);

В нем я реализую эффект "горизонтальный skew" изображения обложки очень популярной книги "ПЯТНИЦЦО":)
Вопрос: Каков порядок следования действий метода?

Так:

1. Производится "skew" исходного изображения
2. Производится копирование пикселей из искаженного изображения в целевой объект в область clipRect;

или наоборот:

1. Производится копирование пикселей из искаженного изображения в целевой объект в область clipRect;
2. Производится "skew" целевого объекта;

Заранее благодарен! Надеюсь на Вашу помощь. Спасибо.

MrPoma
07.06.2008, 16:40
Берется пиксель исходного изображения, накладывается матричные преобразования.

Т.е.1. Производится копирование пикселей из искаженного изображения в целевой объект в область clipRect;
2. Производится "skew" целевого объекта;

Alex_beginner
07.06.2008, 16:52
Т.е. если я правильно Вас понял, то количество операций трансформации над пискелями должно уменьшиться, поскольку, в "вырезанной" области меньше пикселей. Если это так, то можно это как то доказать. Скажем неким тестовым примером. И, если можно, подскажите где есть официальное подробное обсуждение этого вопроса. Я имею ввиду официальную документацию, хелпы преимущественно от самих производителей Flash 8 или других авторитетных источников.

Независимо от результата ответа, выражаю Вам свою благодарность за помощь!