WriteableBitmap SetValue производительность / Texture2D SetData - PullRequest
0 голосов
/ 17 февраля 2012

Мне было просто интересно, знает ли кто-нибудь (с точки зрения производительности на wp7) лучший способ обновления пикселя WriteableBitmap за пикселем ... Я вижу метод Pixels.SetValue, который может принимать цвет и одно местоположение. Но, конечно, более быстрый вариант - сначала установить массив, а затем SetValue (theArray) ... как-то так ...

Int32[] pixels = bmp.Pixels;
for(Int32 y = 479; y > 0; y--)
    for (Int32 x = 0; x < 480; x++)
    {
        pixels[x + (y * 480)] = 0;
    }
bmp.Pixels.SetValue(pixels);

но такой опции, похоже, нет ???

очевидно, здесь я просто настраиваю все на черное ... но если я хочу сделать больше ...

Итак, в основном, я просто спрашиваю, каков наилучший способ манипулировать / создавать растровое изображение за пикселем и получать наилучшую производительность? (подумайте об обновлении растрового изображения на каждом тике)

edit: Я только что заметил, что Texture2D.SetData (theArray) имеет эту функциональность, кто-нибудь может прокомментировать производительность этого? или, возможно, порекомендуете лучший способ сделать это?

1 Ответ

1 голос
/ 17 февраля 2012

Вы можете создать растровое изображение, задав ему массив байтов. Один из конструкторов Bitmap позволяет это сделать. Посмотрите на это и это .

Так что, вероятно, лучший способ - это работать с массивом и создавать из него растровое изображение при необходимости. Но, конечно же, для рисования линий, окружностей и т. Д. Лучше использовать некоторые функции рисования.

...