BitmapData и Marshal.Copy?Какая альтернатива для Windows Phone? - PullRequest
2 голосов
/ 07 октября 2011

ОБНОВЛЕНО: осматривался и пытался выяснить, какая альтернатива есть для Windows Phone 7.1 для BitmapData.Я закомментировал рассматриваемый код.Я знаю о Локбитах и ​​о том, что по сравнению с ним можно быстро установить установленные пиксели и так далее.Насколько я понимаю, BitmapData блокирует изображение в памяти, готовой к манипулированию.BmpData.Scan0 действует как указатель на память.

Если бы я делал это без BitmapData, произнесите Get.Pixel и сопоставьте его с памятью.и манипулировать некоторыми данными изображения с помощью Set.Pixel?

PS: в отношении скорости обработки;Я не хочу менять много пикселей.

  public int Edit(Bitmap BmpIn, byte[] BIn, byte BitsPerByte)
  {
      int LengthBytes = 1 + 31 / BitsPerByte;
      int TextLength = 1 + (8 * BIn.Length - 1) / BitsPerByte;
      //BitmapData BmpData = BmpIn.LockBits(new Rectangle(0, 0, BmpIn.Width, BmpIn.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
      RGB = new byte[2 + LengthBytes + TextLength];
      //Marshal.Copy(BmpData.Scan0, RGB, 0, RGB.Length);
      InsertBitsPerByte(BitsPerByte);
      SetMasks(BitsPerByte);
      InsertLength(LengthBytes, TextLength, BitsPerByte);
      InsertBytes(BIn, BitsPerByte);
      //Marshal.Copy(RGB, 0, BmpData.Scan0, RGB.Length);
      BmpIn.UnlockBits(BmpData);
      return TextLength;
   }

Любая помощь приветствуется.Спасибо

1 Ответ

1 голос
/ 07 октября 2011

Посмотрите на WriteableBitmapEx . Это позволит вам выполнять пиксельные манипуляции в изображении.

...