Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   формат bitmap (http://www.flasher.ru/forum/showthread.php?t=133301)

cactusov 02.12.2009 00:34

формат bitmap
 
Можно ли как-то регулировать цветность bitmap'а, скажем, сделать его в градациях серого или вообще черно-белым с целью экономии памяти?

flash33 02.12.2009 00:37

BitmapData.colorTransform
А память вы этим не съэкономите

cactusov 02.12.2009 00:43

с colorTransform я знаком, интересна идея хранения битмапы с ограниченной палитрой

flash33 02.12.2009 00:47

paletteMap (), но это операция над полноцветным растром, следовательно память не экономится. Только разве вы ее потом сохраните на диске в сжатом jpg...

cactusov 02.12.2009 01:01

идея изменения палитры не в цвете, а в экономии памяти. мне вообще все-равно какие там будут цвета, нужно всего два разных цвета - черный и белый. У меня битмапы выступают в качестве слоя erase. таких bitmap 200 штук 400х400 пикселей, кушают они около 400 метров оперативки, что не есть гуд.
другого решение, без использования такого количества битмапов, я не нашел

iNils 02.12.2009 01:29

Цитата:

таких bitmap 200 штук 400х400 пикселей, кушают они около 400 метров оперативки,
Все битмапдаты хранятся в памяти, как 32-х битные.

wvxvw 02.12.2009 01:38

Можно попробовать хранить как Vector.<Boolean> но рассчеты будут очень ресурсоемкими... возможно с помощью Алхимии можно что-то с этим придумать, но я не специалист.
Код AS3:

var v:Vector.<Boolean> = new Vector.<Boolean>(400 * 400, true);
var i:int = 400 * 400;
while (i--) v[i] = Math.random() > .5;
var b:BitmapData = new BitmapData(400, 400);
var ba:ByteArray = new ByteArray();
ba.writeObject(v);
trace(getSize(ba), getSize(b)); //80 640064

EDIT: Оп, чет я с подсчетами погарячился... вектор по ходу еще и не сериализуется... :(

cactusov 02.12.2009 10:27

всем большое спасибо, видимо не судьба. жаль. с вектором, на первый взгляд, хорошая идея, но думаю, что после расчетов оперативка все-равно будет съедаться...

Партизан 02.12.2009 11:41

А векторными изображениями хранить? А потом отрисовывать в битмапы? Не думаю что вам все сразу картинки нужны. Это если конечно изображения не сложные.
Недавно просто пришлось делать карту, несколько уровней зума(15). Растра там было бы очень много. Важна была так же и детализация. Просто вектор закинув - то же не решение... Вывод не имел права на жизнь. Очень все тормозило. Решил проблему красиво - отрисовывал вектор "налету" по 9 экранов. Смысл в том что при каждом перемещении по карте пользователь не может сместить ее более чем на один экран в любом направлении. При условии что размер флешки фиксированный, результат получился довольно терпимым. Вес вектора 1 мегабайт + 9Битмапов. Возможно в вашем случае можно решить задачу примерно так же.

enepx 02.12.2009 14:34

Цитата:

Сообщение от iNils (Сообщение 869637)
QUOTE]Все битмапдаты хранятся в памяти, как 32-х битные.

Вот я не понимаю почему, у меня тоже много битмапы, сами они JPG и весят немного, а флеш все выедает. Есть ли другие способы хранения прямо в JPG формате, например?


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

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