Программное попиксельное рисование.
Можно ли рисовать фигуры по пикселям, используя какой-нибудь массив?
Т.е. допустим есть массив: [ 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. |
Да, можно.
Есть метод setPixels, только принимает ByteArray, а не обычный массив (при необходимости сконвертируете): http://help.adobe.com/ru_RU/AS3LCR/F...etPixels%28%29 |
Цитата:
Цитата:
|
Первое что приходит вголову - в цикле читать с массива и писать в ByeArray методом writeInt.
Может есть метод и лучше, к сожалению его не знаю Цель какая кстати? Запихивать картинки в виде текста? Наверняка можно что получше можно придумать. (Всетки само по себе чтение из массива сравнимо по скорости с операцией добавления пиксела, т.е. смысла особого нет отказываться от setPixel) |
Смысл рисовать мелкие картинки :) для классов, не теня за этими классами других файлов(файлов картинок) - думаю понятно что имею в виду. Чисто для оформления.
|
Используй setPixel и не парься, я щас проверил - засовывание в ByteArray интов занимает столько же сколько и setPixel, а их еще нужно setPixels-ом прогнать
Главное, как только положили bitmapData в Bitmap - не забывать делать lock/unlok при перерисовке По крайней мере картинка 1000x1000 заполняется за 300 мс на моей НЕ новой машине, Текстом просто сложно нарисовать такую здоровую картинку, которая создаст проблему для процессора :) |
Цитата:
А сейчас в моем случае вообще оказалось можно получить нужный мне результат, просто TextField превратив в Bitmap. |
Посмотри как тут сделали http://code.google.com/p/away3d/sour.../stats/Logo.as может как раз подойдет.
|
Цитата:
|
Ну вот и отлично, а при большем желании можно написать алгоритм который из обычного изображения делал бы массив именно такого вида как в Logo.as.
|
Часовой пояс GMT +4, время: 13:54. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.