最近做了一个获取位图(24位位图)数据的程序,代码如下:
Bitmapbmp=newBitmap(BmpFile);
//获取位图的数据
System.Drawing.Imaging.BitmapDatabmpData=bmp.LockBits(newRectangle(0,0,bmp.Width,bmp.Height),System.Drawing.Imaging.ImageLockMode.ReadWrite,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
//获得位图数据的初始地址
IntPtrptr=bmpData.Scan0;
//位图数据
intbytes=bmp.Width*bmp.Height*3;
byte[]bytData=newbyte[bytes];
//拷贝位图数据到字节数组
System.Runtime.InteropServices.Marshal.Copy(ptr,bytData,0,bytes);
//数据处理
//......
//拷贝字节数组数据到位图
System.Runtime.InteropServices.Marshal.Copy(bytData,0,ptr,bytes);
//更新图片数据
bmp.UnlockBits(bmpData);
该程序用VS2005+.net精简框架集开发,在PC机Windows平台上运行该程序获取图片数据正常,把同样的程序拷贝到WinCE 4.2(含.net 精简框架集2.0)运行,虽然也获取到位图数据,但数据与上位机的有所不同,RGB颜色被调整,如9会变成8之类。我以为是系统设置为16位色的缘故,我在PC机设为16位色,但取数据正常。
最后我只能用常规读写文件的方法,直接从文件中获取数据,才能保证上下位机系统同时运行正常。
分享到:
相关推荐
// srcData = src.LockBits(rect, ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb); // //锁定字节数组到内存 // p = (byte*)srcData.Scan0.ToPointer(); // //获取字节数组在内存中地址 // if (src....
"位图( *.bmp; *.jpg; *.png;...) | *.bmp; *.pcx; *.png; *.jpg; *.gif; *.tif; *.ico|" + "矢量图( *.wmf; *.eps; *.emf;...) | *.dxf; *.cgm; *.cdr; *.wmf; *.eps; *.emf"; opnDlg.Title = "打开图像文件"; ...
本文主要通过彩色图象灰度化来介绍C#处理数字图像的3种方法,Bitmap类、BitmapData类和Graphics类是C#处理图像的的3个重要的类。... LockBits方法和UnlockBits方法,分别锁定和解锁系统内存中的位图像素。
"位图( *.bmp; *.jpg; *.png;...) | *.bmp; *.pcx; *.png; *.jpg; *.gif; *.tif; *.ico|" + "矢量图( *.wmf; *.eps; *.emf;...) | *.dxf; *.cgm; *.cdr; *.wmf; *.eps; *.emf"; opnDlg.Title = "打开图像文件"; ...
BitmapData data1 = bm1.LockBits(new Rectangle(0, 0, bm1.Width, bm1.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); BitmapData data2 = bm2.LockBits(new Rectangle(0, 0, bm2.Width, ...
本文实例讲述了C#图像处理之图像均值方差计算的方法。分享给大家供大家参考。... System.Drawing.Imaging.BitmapData bmpData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite
System.Drawing.Imaging.BitmapData srcData = a.LockBits(new Rectangle (0,0,a.Width ,a.Height) ,System .Drawing .Imaging .ImageLockMode .ReadWrite ,a.PixelFormat ); IntPtr ptr = srcData.Scan0; i
彩色图片转为灰度图的公式如下: 代码如下: gray(i,j) = 0.299 * Red(i,j)+... BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRg
本文实例讲述了C#图像处理之头发检测的方法。... System.Drawing.Imaging.BitmapData bmpData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Forma
System.Drawing.Imaging.BitmapData bmpData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
System.Drawing.Imaging.BitmapData bmpData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format24bpp
本文实例讲述了C#实现图像反色的方法。分享给大家供大家参考。具体如下: //定义图像反色函数 private static Bitmap PContray (Bitmap a) ... System.Drawing.Imaging.BitmapData srcData = a.LockBits(new Rectangle
本文实例讲述了C#图像灰度级拉伸的方法。... System.Drawing.Imaging.BitmapData srcData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, a.PixelFormat); IntPtr ptr = srcDat
本文实例讲述了C#图像伪彩色处理方法。分享给大家供大家参考。具体如下: //灰度图转伪彩色图像函数 ... System.Drawing.Imaging.BitmapData bmpData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWr
本文实例讲述了C#图像处理之木刻效果实现方法。分享给大家供大家参考。... System.Drawing.Imaging.BitmapData bmpData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, Syst
本文实例讲述了C#数字图象处理之肤色检测的方法。... System.Drawing.Imaging.BitmapData bmpData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.Pix
本文实例讲述了C#实现图像锐化的方法。分享给大家供大家参考。具体如下: //定义图像锐化函数 private static Bitmap Sharpen(Bitmap a,double ... System.Drawing.Imaging.BitmapData srcData = a.LockBits(new Recta
本文实例讲述了C#图像边缘检测(Roberts)的方法。分享给大家供大家参考。具体如下: //定义roberts算子函数 private static Bitmap robert(Bitmap ... System.Drawing.Imaging.BitmapData srcData = a.LockBits(new R
本文实例讲述了C#图像线性变换的方法。分享给大家供大家参考。具体如下: ... System.Drawing.Imaging.BitmapData srcData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, a.PixelFo
本文实例讲述了C#图像处理之霓虹效果实现方法。分享给大家供大家参考。具体如下: //定义霓虹处理函数 public Bitmap PNihong(Bitmap ... System.Drawing.Imaging.BitmapData srcData = a.LockBits(new Rectangle (0,