Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Программное попиксельное рисование. (http://www.flasher.ru/forum/showthread.php?t=141246)

cpu 19.06.2010 23:31

Программное попиксельное рисование.
 
Можно ли рисовать фигуры по пикселям, используя какой-нибудь массив?
Т.е. допустим есть массив:
[
0,0,0,0,0
0,1,1,1,0
0,1,0,1,0
0,1,1,1,0
0,0,0,0,0
].
Где "1" - это пиксель, "0"-прозрачная область.
Можно ли его как-нибудь загнать в BitmapData экземпляр?
Короче рисовать мелкие растры не используя огромное кол-во setPixel.

expl 20.06.2010 00:52

Да, можно.
Есть метод setPixels, только принимает ByteArray, а не обычный массив
(при необходимости сконвертируете):
http://help.adobe.com/ru_RU/AS3LCR/F...etPixels%28%29

cpu 20.06.2010 01:36

Цитата:

Есть метод setPixels
- его я видел.
Цитата:

только принимает ByteArray
- вот здесь загвоздка, честно не знаю что это. Т.е. не знаю как туда записывать значения.

expl 20.06.2010 01:42

Первое что приходит вголову - в цикле читать с массива и писать в ByeArray методом writeInt.
Может есть метод и лучше, к сожалению его не знаю

Цель какая кстати?
Запихивать картинки в виде текста?
Наверняка можно что получше можно придумать.
(Всетки само по себе чтение из массива сравнимо по скорости с операцией добавления пиксела, даже не уверен что быстрее,
т.е. смысла особого нет отказываться от setPixel)

cpu 20.06.2010 02:01

Смысл рисовать мелкие картинки :) для классов, не теня за этими классами других файлов(файлов картинок) - думаю понятно что имею в виду. Чисто для оформления.

expl 20.06.2010 02:21

Используй setPixel и не парься, я щас проверил - засовывание в ByteArray интов занимает столько же сколько и setPixel, а их еще нужно setPixels-ом прогнать

Главное, как только положили bitmapData в Bitmap - не забывать делать lock/unlok при перерисовке

По крайней мере картинка 1000x1000 заполняется за 300 мс на моей НЕ новой машине,
Текстом просто сложно нарисовать такую здоровую картинку, которая создаст проблему для процессора :)

cpu 20.06.2010 02:44

Цитата:

Используй setPixel и не парься
- да, так и решил на будущее.
А сейчас в моем случае вообще оказалось можно получить нужный мне результат, просто TextField превратив в Bitmap.

Dima_DPE 20.06.2010 10:28

Посмотри как тут сделали http://code.google.com/p/away3d/sour.../stats/Logo.as может как раз подойдет.

cpu 20.06.2010 14:15

Цитата:

может как раз подойдет.
- спасибо, как раз подошло.)

Dima_DPE 20.06.2010 14:55

Ну вот и отлично, а при большем желании можно написать алгоритм который из обычного изображения делал бы массив именно такого вида как в Logo.as.


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

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