Creatinga1bppMaskfromanImageHowtocreatea1-bit-bit-per-pixelmaskfromanimageusingGDIinC#?我试图从中创建遮罩的图像保存在System.Drawing.Graphics对象中。我看过在循环中使用Get/SetPixel的示例,但速度太慢了。我感兴趣的方法是只使用BitBlits的方法,比如这个。我只是无法让它在C#中工作,非常感谢任何帮助。试试这个:使用System.Drawing;使用System.Drawing.Imaging;使用System.Runtime.InteropServices;...publicstaticBitmapBitmapTo1Bpp(Bitmapimg){intw=img.Width;inth=img.Height;位图bmp=newBitmap(w,h,PixelFormat.Format1bppIndexed);BitmapData数据=bmp.LockBits(newRectangle(0,0,w,h),ImageLockMode.ReadWrite,PixelFormat.Format1bppIndexed);对于(inty=0;y=0.5)扫描[x/8]|=(byte)(0x80>>(x%8));}Marshal.Copy(scan,0,(IntPtr)((int)data.Scan0+data.Stride*y),scan.Length);}bmp.UnlockBits(数据);返回bmp;}GetPixel()很慢,您可以通过使用不安全字节*来加快速度。在Win32CAPI中,创建单声道掩码的过程很简单。对于加分,通常需要将掩码重新指向源位图(使用SRC_AND)以将掩码颜色归零。你是说LockBits?BobPowell在这里概述了LockBits;这应该提供对RGB值的访问以满足您的需要。您可能还想看看ColorMatrix,就像这个一样。以上就是C#学习教程:Create1bppmaskfromtheimage。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处:
