Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Аналог setPixels() для альфы (http://www.flasher.ru/forum/showthread.php?t=204158)

uglan 21.10.2013 19:36

Аналог setPixels() для альфы
 
Привет!
Столкнулся с одной проблемой, пользуюсь быстрым и удобным способом копировать битмапдату getPixels/setPixels, однако для отрисовки прозрачных битмап этот вариант не подходит. И вот беда, аналогичных методов нет в классе битмапдаты. getPixel32 и setPixel32 теоретически подходящие для альфы не используют byte array в отличии от getPixels/setPixels. Как быть?
Часть кода:
Код AS3:

private var ba:ByteArray = new ByteArray();
var bmd:BitmapData = new BitmapData(800, 600, true, 0x0);
var bm:Bitmap;
var brushSrc:Brush = new Brush();
 
bm = new Bitmap(bmd,"auto",true);
addChild(bm);
 
ba = brushSrc.getPixels(new Rectangle(0,0,64,64));
ba.position = 0;
bmd.setPixels(new Rectangle(x, y,64,64),ba);


samana 22.10.2013 02:20

Ещё есть
Цитата:

Код AS3:

getVector(rect:Rectangle):Vector.<uint>

Формирует векторный массив из прямоугольного участка пиксельных данных.

Код AS3:

setVector(rect:Rectangle, inputVector:Vector.<uint>):void

Преобразует вектор в прямоугольную область пиксельных данных.
может вам подойдёт.

Wolsh 22.10.2013 09:39

copyChannel() не подходит?

Да и, собственно, зачем Вам getPixels()? Есть же copyPixels(), зачем какие-то промежуточные ByteArray?
Я думаю эти методы (getPixels/setPixels) вообще не для копирования, а именно для промежуточной обработки/сохранения данных.

uglan 22.10.2013 10:08

Цитата:

Сообщение от Wolsh (Сообщение 1149472)
copyChannel() не подходит?
Да и, собственно, зачем Вам getPixels()? Есть же copyPixels(), зачем какие-то промежуточные ByteArray?
Я думаю эти методы (getPixels/setPixels) вообще не для копирования, а именно для промежуточной обработки/сохранения данных.

Мне впринципе все равно) главное результат - копирование прозрачной картинки и чтоб очень быстро. Сейчас нашел такой бенчмарк, похоже вы правы, copyPixels самый быстрый.


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

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