Каков наиболее эффективный способ перезаписи растровых данных? - PullRequest
0 голосов
/ 15 июля 2010

У меня есть объект bitmapdata, который заполнен n прямоугольниками шириной 1 пиксель и различной высоты.

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

Должен ли я сделать что-то вроде сброса каждого столбца растрового изображения пикселей на цвет фона и затем добавить желаемое прямоугольное значение?

for(i:int=0;i<bitmapdata.width;++i)

{
   (for var j:int=0;j<bitmapdata.height;j++)
{
  bitmapdata.setPixel(i,j,0x000000)
}

bitmapdata.fillrect(my new rect,0xffffff)


}

1 Ответ

0 голосов
/ 16 июля 2010

Ну, я заметил, что вы используете fillRect для чего-то, почему бы не использовать его для всего?Просто fillRect соответствующий столбец, а затем выполните еще один fillRect снизу вверх, чтобы создать новый прямоугольник.

Я не уверен, что это самый быстрый способ сделать это, но вы можете попробоватьcopyPixels, что я слышал очень быстро.Мое предложение использовать это безо всякой боли - собрать растровое изображение, которое идет от наличия столбца с высотой 0px до полной высоты, а когда вам нужен столбец с высотой X, скопируйте из готового растрового изображенияв столбце X и скопируйте его в столбец Y на исходном изображении «связки столбцов».

Надеюсь, это поможет.Пишите комментарии, и я постараюсь уточнить в ответ, если это будет необходимо.

...