C#图像处理之图像平移的方法
程序员文章站
2022-05-26 15:18:32
本文实例讲述了c#图像处理之图像平移的方法。分享给大家供大家参考。具体如下:
//定义图像平移函数
private static bitmap offsetp(...
本文实例讲述了c#图像处理之图像平移的方法。分享给大家供大家参考。具体如下:
//定义图像平移函数 private static bitmap offsetp(bitmap a,int s,int v) { 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; int bytes = srcdata.stride * a.height; byte[]grayvlaues=new byte[bytes]; system.runtime.interopservices.marshal.copy(ptr ,grayvlaues ,0,bytes); byte[] temparray=new byte[bytes]; for (int i = 0; i < bytes; i++) { temparray[i] = 255; } for (int i = 0; i < a.width * 3; i += 3) { if ((i + s*3) < a.width*3 && (i + s*3) > 0) { for (int j = 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 ); return a; }
希望本文所述对大家的c#程序设计有所帮助。
上一篇: 解决表单提交的数据丢失问题
下一篇: C#实现图像锐化的方法