博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Win8Metro(C#)数字图像处理--2.18图像平移变换
阅读量:6234 次
发布时间:2019-06-22

本文共 1348 字,大约阅读时间需要 4 分钟。

原文:



[函数名称]

图像平移变换函数TranslationProcess(WriteableBitmap src,int x,int y)

[函数代码]

       ///<summary>

       /// Translation process.

       ///</summary>

       ///<param name="src">Source image.</param>

       ///<param name="x">Translate value of x.</param>

       ///<param name="y">Translate value of y.</param>

       ///<returns></returns>

       publicstaticWriteableBitmap TranslationProcess(WriteableBitmap src,int x,int y)18平移变换

       {

           if(src!=null )

           {

           int w = src.PixelWidth;

           int h = src.PixelHeight;

           WriteableBitmap translateImage =newWriteableBitmap(w, h);

           byte[] temp = src.PixelBuffer.ToArray();

           byte[] tempMask =newbyte[w * h * 4];

           for (int j = 0; j < h; j++)

           {

               for (int i = 0; i < w; i ++)

               {

                   if (i + x < 0 || i + x >= w || j + y < 0 || j + y >= h)

                   {

                       tempMask[i * 4 + j * w * 4] = (byte)0;

                       tempMask[i * 4 + 1 + j * w * 4] = (byte)0;

                       tempMask[i * 4 + 2 + j * w * 4] = (byte)0;

                   }

                   else

                   {

                       tempMask[i * 4 + j * w * 4] = (byte)(temp[(i + x) * 4 + (j + y) * w * 4]);

                       tempMask[i * 4 + 1 + j * w * 4] = (byte)(temp[(i + x) * 4 + 1 + (j + y) * w * 4]);

                       tempMask[i * 4 + 2 + j * w * 4] = (byte)(temp[(i + x) * 4 + 2 + (j + y) * w * 4]);

                       tempMask[i * 4 + 3 + j * w * 4] = (byte)(temp[(i + x) * 4 + 3 + (j + y) * w * 4]);

                   }

               }

           }

           Stream sTemp = translateImage.PixelBuffer.AsStream();

           sTemp.Seek(0, SeekOrigin.Begin);

           sTemp.Write(tempMask, 0, w * 4 * h);

           return translateImage;

           }

           else

           {

               returnnull;

           }  

       }

[图像效果]

你可能感兴趣的文章
linux Platform设备驱动
查看>>
侦探推理小故事
查看>>
IPTV监测和测试设备
查看>>
rsync添加多模块,客户端推送出错!
查看>>
如何使用 Java8 实现观察者模式?(上)
查看>>
网络基础之--IP数据报、分片策略、路由表
查看>>
Spread for Windows Forms高级主题(6)---数据绑定管理
查看>>
关于ComponentOne For WinForm 的全新控件 – DataFilter数据切片器(Beta)
查看>>
HTTP状态码
查看>>
C语言运算符优先级 详细列表
查看>>
正则表达式基础整理
查看>>
android中Bitmap对象怎么保存为文件?
查看>>
shell 之 grep 和正则表达式(五)
查看>>
Angular中ngCookies模块介绍
查看>>
centso7安装nodejs
查看>>
Oracle的FIXED_DATE参数
查看>>
linux 本地账号密码无法登陆,一直返回 登陆的login界面
查看>>
js无缝滚动
查看>>
Android调试神器stetho使用详解和改造
查看>>
计算机网络复习
查看>>