当前位置:编程学习 > C#/ASP.NET >>

用C# 实现位图像素处理

本人要做一个信息隐藏的软件,原理是只样的W'=W+a*X,其中,W'是嵌入水印后的图象像素,W是原始图象的像素,X是要嵌入的水印(二进制:0或者1),a是嵌入因子,一般在0~1之间。在BMP中一个像素有24bit,用Getpixel()方法得到的像素是Color类型,但在嵌入的时候加的值是个小数,而像素是一个24bit的数,这个怎么处理?还有,一个Color类型不能直接与一个float或者double类型直接相加?那这个又怎么转换?有高人指点一下啊,给出一点思路或者一段代码!谢谢.
如果有代码能不能发到:zh1985444@sina.com.cn --------------------编程问答-------------------- up --------------------编程问答-------------------- 翻转算法:   
  public   static   bool   Invert(Bitmap   b)   
  {   
  BitmapData   bmData   =   b.LockBits(new   Rectangle(0,   0,   b.Width,   b.Height),ImageLockMode.ReadWrite,   PixelFormat.Format24bppRgb);   
  int   stride   =   bmData.Stride;   
  System.IntPtr   Scan0   =   bmData.Scan0;   
  unsafe   
  {   
  byte   *   p   =   (byte   *)(void   *)Scan0;   
  int   nOffset   =   stride   -   b.Width*3;   
  int   nWidth   =   b.Width   *   3;   
  for(int   y=0;y<b.Height;++y)   
  {   
  for(int   x=0;   x   <   nWidth;   ++x   )   
  {   
  p[0]   =   (byte)(255-p[0]);   
  ++p;   
  }   
  p   +=   nOffset;   
  }   
  }   
  b.UnlockBits(bmData);   
  return   true;   
  }   
--------------------编程问答-------------------- 楼上的这个我懂,关键是我上面说的如何嵌入和提取
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,