C#图像处理之图像平移的方法
本文实例讲述了C#图像处理之图像平移的方法。分享给大家供大家参考。具体如下:
//定义图像平移函数
privatestaticBitmapoffsetp(Bitmapa,ints,intv)
{
System.Drawing.Imaging.BitmapDatasrcData=a.LockBits(newRectangle(0,0,a.Width,a.Height),System.Drawing.Imaging.ImageLockMode.ReadWrite,a.PixelFormat);
IntPtrptr=srcData.Scan0;
intbytes=srcData.Stride*a.Height;
byte[]grayVlaues=newbyte[bytes];
System.Runtime.InteropServices.Marshal.Copy(ptr,grayVlaues,0,bytes);
byte[]tempArray=newbyte[bytes];
for(inti=0;i<bytes;i++)
{
tempArray[i]=255;
}
for(inti=0;i<a.Width*3;i+=3)
{
if((i+s*3)<a.Width*3&&(i+s*3)>0)
{
for(intj=0;j<a.Height;j++)
{
if((j+v)<a.Height&&(j+v)>0)
{
tempArray[(i+s*3)+(j+v)*srcData.Stride]=grayVlaues[i+j*srcData.Stride];
tempArray[i+s*3+1+(j+v)*srcData.Stride]=grayVlaues[i+1+j*srcData.Stride];
tempArray[i+s*3+2+(j+v)*srcData.Stride]=grayVlaues[i+2+j*srcData.Stride];
}
}
}
}
grayVlaues=(byte[])tempArray.Clone();
System.Runtime.InteropServices.Marshal.Copy(grayVlaues,0,ptr,bytes);
a.UnlockBits(srcData);
returna;
}
希望本文所述对大家的C#程序设计有所帮助。