Показать сообщение отдельно
Старый 31.07.2011, 18:11
denver вне форума Посмотреть профиль Отправить личное сообщение для denver Найти все сообщения от denver
  № 1  
Ответить с цитированием
denver

Регистрация: Jan 2010
Сообщений: 32
Attention BitmapData: искажение цвета при использовании метода draw с матрицей трансформации

Доброго денечка!

Налетел на следующие вилы при повороте битмапы:
1 вариант
Код AS3:
var bitmapData:BitmapData = new BitmapData(1, 10, false, 0xff0000);
var matrix:Matrix = new Matrix();
 
matrix.translate(-bitmapData.width/2, -bitmapData.height/2);
matrix.rotate(Math.PI * .5);
matrix.translate(bitmapData.height/2, bitmapData.width/2);
 
var retval:BitmapData = new BitmapData(bitmapData.height, bitmapData.width, false, 0);
retval.draw(bitmapData, matrix);
---------------
итого: на входе вертикальная линия цвета 0xff0000, на выходе горизонтальная цвета 0xff0000

2 вариант
все тоже самое только
Код AS3:
var bitmapData:BitmapData = new BitmapData(10, 1, false, 0xff0000);
...
---------------
итого: на входе горизонтальная линия цвета 0xff0000, на выходе вертикальная цвета 0xbf0000

Если увеличить height во втором варианте хотя бы до 2 pix, то цвет до и после поворота остается неизменным.

Есть ли выход избежать изменения цвета с сохранением width/height значений указанных в обоих вариантах?