![]() |
Трансформация BitmapData
Если ли возможность как-нибудь повернуть(или изменить размер) объекта BitmapData, после того, как мы его отрисовали(BitmapData.draw())?
Можно конечно повернуть сразу при отрисовке при помощи матрицы... , но в этом случае после поворота, если мы будем менять его размеры(Matrix.scale()), то "скейлится" уже будет повёрнутый объект. |
«Непоняяяятно» © ©©™
Битмап вообще говоря прямоугольный, что значит «повернуть»? Изменить размеры можно, отрисовав со старого новый битмап с новыми размерами, с матрицей трансформацией. |
Ладно... Другой вопрос:
Если ми меняем Matrix.scale() при отрисовке(draw()), и при этом объект повернут, то растягивается уже повёрнутый объект(то есть, если мы ,например, поворачиваем квадрат, то после скейлинга он больше похож на повернутую трапецию, чем на повёрнутый квадрат). Это можно как-то обойти? |
Либо повернуть объект на время отрисовке на нормальный угол, либо повернуть матрицу в обратную сторону.
|
От того, что мы повернём объект, его содержимое не меняется,а нам ведь надо отрисовывать содержимое...
|
Содержимое вместе с объектом повернется.
Обычный _rotation. Я не очень понимаю, что именно у тебя не получается и хотелось бы пример того, что не получается. |
т.е. у тебя получается, что после поворота на 15 градусов и последующего масштабирования пропорции меняются? а нельзя скажем сделать примерно так:
Код:
tmp = bd._rotation; |
1.Есть контейнер
2.Контейнер поворачивается и меняет размеры 3.Все содержимое выравниваю по левому верхнему углу(для нормальной отрисовки draw) 4.Как получить растр содержимого контейнера, учитывая, что контейнер поворачивался и менял размеры, то есть надо получить растровую копию контейнера. |
Скопируй трансформацию контейнера, выставь дефолтные значения, сними скриншот, потом примени трансформацию назад.
|
Еще один вопрос: как убрать лишнее края(белые области) в объекте BitmapData?
Я так понимаю, что сначала юзаем getColorBoundsRect, а потом copyPixels. Возникает проблема с getColorBoundsRect. Код:
trace(resultBtp.getColorBoundsRect(0xFFFFFFFF, 0xFFFFFFFF));//выводит размеры всего битмапа, а не области(в которой нет белых пикселей) |
а где false? У тебя область, в которой ЕСТЬ белые пикселы.
|
В общем надо найти область(Rectangle), где находится линия(ее цвет отличный от нуля).
|
getColorBoundsRect принимает 3 параметра.
|
Так кто-то знает, как это сделать?:
Цитата:
|
Прочитай сообщение выше. Третий параметр говорит о том, какой прямоугольник нам нужен - включающий или НЕ включающий данный цвет.
Посмотри в этой теме, пост#48: http://flasher.ru/forum/showthread.php?t=97958&page=5 А откуда вообще белая рамка? Битмапу сделай прозрачной. |
Разобрался... спс.
|
| Часовой пояс GMT +4, время: 19:41. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.