BitmapData和Marshal.复制吗?什么替代windows手机

本文关键字:windows 手机 什么 Marshal 复制 BitmapData | 更新日期: 2023-09-27 18:10:37

更新:一直在四处寻找,并试图找出windows phone 7.1的BitmapData有什么替代方案。我已经注释掉了有问题的代码。我知道Lockbits,与设置像素等相比,它很快。根据我的理解,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;
   }

感谢您的帮助。感谢

BitmapData和Marshal.复制吗?什么替代windows手机

看看WriteableBitmapEx。这将允许您在图像中进行像素操作。