BitmapData и Marshal.Copy? Какая альтернатива для Windows phone?

#c# #windows-phone-7 #windows-phone-7.1 #getpixel #lockbits

#c# #windows-phone-7 #windows-phone-7.1 #getpixel #блокировки

Вопрос:

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

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

P.S: Что касается скорости обработки; Я не собираюсь менять много пикселей.

   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. Неясно, что вы пытаетесь сделать: клонировать изображение, манипулировать изображением? Оба?

2. Да, я пытаюсь клонировать, а затем манипулировать изображением. Я ввел еще немного кода, если он немного прояснит ситуацию.

Ответ №1:

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

Комментарии:

1. Можете ли вы объяснить немного подробнее, как это может быть полезно в приведенном выше сценарии? Я посмотрел на leadtools и некоторые другие. Что-нибудь похожее на BitmapData или Bitlocks?