Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Обрезание BitmapData по содержащемуся объекту (http://www.flasher.ru/forum/showthread.php?t=189831)

Alexmody 17.12.2012 18:35

Обрезание BitmapData по содержащемуся объекту
 
Создается растровая карта:
Код AS3:

var map:BitmapData = new BitmapData(500, 500, true, 0x00000000);

В нее рисуется спрайт: черный градиентный круг 10x10 px.
Код AS3:

var matrix:Matrix = new Matrix();
matrix.tx = 20;
matrix.ty = 20;
partBitmapData.draw(part, matrix);

Как, лучше мне обрезать/получить растровую карту, чтобы map была размером со спрайт-круг и помещала его. Т.е. мы автоматически программно удаляем лишнюю прозрачную пустую область. Надо заметить, что размер спрайта круга будет генерироваться (разный) и заранее не известен разработчику.

maxkar 17.12.2012 18:53

Поворотов/масштабирований в матрице нет? Если нет, проще всего использовать DisplayObject.getBounds() (например, part.getBounds(part)). Если есть - тогда или тот же getBounds (но сложнее), либо смотреть bitmap и анализировать области (не слишком быстро).

Alexmody 17.12.2012 19:46

Дело в том, что этот спрайт круг будет еще подвержен фильтру (блюру). Кажется придется формировать Rectangle перебирать слева-направо пиксели и делать сверку (отделение объекта от фона), при этом брать координату первого пикселя левого-верхнего и последнего правого-нижнего.

Zebestov 17.12.2012 20:00

BitmapData#getColorBoundsRect() поможет.

alatar 17.12.2012 20:22

Цитата:

Сообщение от Alexmody (Сообщение 1110376)
Надо заметить, что размер спрайта круга будет генерироваться (разный) и заранее не известен разработчику.

Он ему известен в момент отрисовки.


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

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