Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Трансформация BitmapData (http://www.flasher.ru/forum/showthread.php?t=98520)

BigDan 15.07.2007 12:55

Трансформация BitmapData
 
Если ли возможность как-нибудь повернуть(или изменить размер) объекта BitmapData, после того, как мы его отрисовали(BitmapData.draw())?

Можно конечно повернуть сразу при отрисовке при помощи матрицы... , но в этом случае после поворота, если мы будем менять его размеры(Matrix.scale()), то "скейлится" уже будет повёрнутый объект.

etc 15.07.2007 13:06

«Непоняяяятно» © ©©™

Битмап вообще говоря прямоугольный, что значит «повернуть»? Изменить размеры можно, отрисовав со старого новый битмап с новыми размерами, с матрицей трансформацией.

BigDan 15.07.2007 13:19

Ладно... Другой вопрос:

Если ми меняем Matrix.scale() при отрисовке(draw()), и при этом объект повернут, то растягивается уже повёрнутый объект(то есть, если мы ,например, поворачиваем квадрат, то после скейлинга он больше похож на повернутую трапецию, чем на повёрнутый квадрат). Это можно как-то обойти?

etc 15.07.2007 13:21

Либо повернуть объект на время отрисовке на нормальный угол, либо повернуть матрицу в обратную сторону.

BigDan 15.07.2007 13:27

От того, что мы повернём объект, его содержимое не меняется,а нам ведь надо отрисовывать содержимое...

etc 15.07.2007 13:28

Содержимое вместе с объектом повернется.
Обычный _rotation.

Я не очень понимаю, что именно у тебя не получается и хотелось бы пример того, что не получается.

Dr.OH 15.07.2007 13:34

т.е. у тебя получается, что после поворота на 15 градусов и последующего масштабирования пропорции меняются? а нельзя скажем сделать примерно так:
Код:

tmp = bd._rotation;
bd._rotation = 0;
bd._xscale = 20;
bd._rotation = tmp;

... я помню, что у меня когда-то такая же фигня была, но как я ее исправил даже примерно не помню :( и дело даже не в bitmap'е.. так все объекты работают... если я конечно не ошибаюсь

BigDan 15.07.2007 13:35

1.Есть контейнер
2.Контейнер поворачивается и меняет размеры
3.Все содержимое выравниваю по левому верхнему углу(для нормальной отрисовки draw)
4.Как получить растр содержимого контейнера, учитывая, что контейнер поворачивался и менял размеры, то есть надо получить растровую копию контейнера.

etc 15.07.2007 14:16

Скопируй трансформацию контейнера, выставь дефолтные значения, сними скриншот, потом примени трансформацию назад.

BigDan 15.07.2007 14:58

Еще один вопрос: как убрать лишнее края(белые области) в объекте BitmapData?

Я так понимаю, что сначала юзаем getColorBoundsRect, а потом copyPixels. Возникает проблема с getColorBoundsRect.
Код:

trace(resultBtp.getColorBoundsRect(0xFFFFFFFF, 0xFFFFFFFF));//выводит размеры всего битмапа, а не области(в которой нет белых пикселей)


Часовой пояс GMT +4, время: 20:23.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.