更新:
一直在寻找并试图找出Windows Phone 7.1 BitmapData的替代方案。我已注释掉有问题的代码。我知道Lockbits及其与设置像素等相比的快速性。
据我了解,BitmapData将图像锁定到内存中以备操作。
BmpData.Scan0充当指向内存的指针。
如果我在没有BitmapData的情况下执行此操作,请说出Get.Pixel并将其映射到内存。和使用Set.Pixel处理一些图像数据?
附言:关于处理速度;我不想改变很多像素。
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;
}
任何帮助表示赞赏。
谢谢
最佳答案
看看WriteableBitmapEx。这将允许您在图像内进行像素操作。
关于c# - BitmapData和Marshal.Copy? Windows Phone有什么替代选择?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7689273/