Win8Metro(C#)数字图像处理--2.15图像霓虹效果
原文:Win8Metro(C#)数字图像处理--2.15图像霓虹效果
[函数名称]
图像霓虹效果函数NeonProcess(WriteableBitmap src)
上述公式进行开方即可。
[函数代码]
///<summary>
/// Neon process.
///</summary>
///<param name="src">Source image.</param>
///<returns></returns>
publicstaticWriteableBitmap NeonProcess(WriteableBitmap src)////15霓虹处理
{
if(src!=null )
{
int w = src.PixelWidth;
int h = src.PixelHeight;
WriteableBitmap neonImage =newWriteableBitmap(w, h);
byte[] temp = src.PixelBuffer.ToArray();
byte[] tempMask = (byte[])temp.Clone();
int b = 0, g = 0, r = 0;
for (int j = 1; j < h - 1; j++)
{
for (int i = 4; i < w * 4 - 4; i += 4)
{
if (i == 0 || i == w - 4 || j == 0 || j == h - 1)
{
temp[i + j * w * 4] = (byte)0;
temp[i + 1 + j * w * 4] = (byte)0;
temp[i + 2 + j * w * 4] = (byte)0;
}
else
{
b = (int)Math.Sqrt((tempMask[i + j * w * 4] - tempMask[i + 4 + j * w * 4]) * (tempMask[i + j * w * 4] - tempMask[i + 4 + j * w * 4])
+ (tempMask[i + j * w * 4] - tempMask[i + (j + 1) * w * 4]) * (tempMask[i + j * w * 4] - tempMask[i + (j + 1) * w * 4]));
g = (int)Math.Sqrt((tempMask[i + 1 + j * w * 4] - tempMask[i + 4 + 1 + j * w * 4]) * (tempMask[i + 1 + j * w * 4] - tempMask[i + 4 + 1 + j * w * 4])
+ (tempMask[i + 1 + j * w * 4] - tempMask[i + 1 + (j + 1) * w * 4]) * (tempMask[i + 1 + j * w * 4] - tempMask[i + 1 + (j + 1) * w * 4]));
r = (int)Math.Sqrt((tempMask[i + 2 + j * w * 4] - tempMask[i + 4 + 2 + j * w * 4]) * (tempMask[i + 2 + j *w * 4] - tempMask[i + 4 + 2 + j * w * 4])
+ (tempMask[i + 2 + j * w * 4] - tempMask[i + 2 + (j + 1) * w * 4]) * (tempMask[i + 2 + j * w * 4] - tempMask[i + 2 + (j + 1) * w * 4]));
temp[i + j * w * 4] = (byte)(b > 0 ? (b < 255 ? b : 255) : 0);
temp[i + 1 + j * w * 4] = (byte)(g > 0 ? (g < 255 ? g : 255) : 0);
temp[i + 2 + j * w * 4] = (byte)(r > 0 ? (r < 255 ? r : 255) : 0);
}
b = 0; g = 0; r = 0;
}
}
Stream sTemp = neonImage.PixelBuffer.AsStream();
sTemp.Seek(0,SeekOrigin.Begin);
sTemp.Write(temp, 0, w * 4 * h);
return neonImage;
}
else
{
returnnull;
}
}
[图像效果]
最新文章
- win10下安装Ubuntu出现win10无法进入的情况
- 基础字符串处理_C++
- django-based blog- mezzanine
- Winform之SpreadSheetGear转DevExpress.XtraSpreadsheet.v13.2 z
- poj1472[模拟题]
- JS计算字符串所占字节数
- [MODx] 10. Using Babel for Muti-languages support
- XJOI网上同步训练DAY5 T1
- IT行业,需要经常锻炼,开篇从本钱开始
- React Native 之 数据持久化
- 用curl采集需要登录的页面
- linux vsftp 简单配置
- [asp.net core]SignalR一个例子
- [C++ Primer Plus] 第6章、分支语句和逻辑运算符(一)程序清单
- Linux之更改Nginx映射默认根目录
- Linux之定时器与时间管理 【转】
- mac下编译cpu only caffe并用xCode建caffe工程
- html文件在head标签中引入js地址和直接写js代码,所用时间是不同的,因为引入js地址,文件加载的时候需要通过通讯协议去解析地址,读取外部文件
- Flask 目录
- 好的MongoDB学习文章链接
热门文章
- 以Network Dataset(网络数据集)方式实现的最短路径分析
- MySQL复制格式小结
- 电子商务系统的设计与实现(十):DWZ框架与第三方分页组件整合
- JS中构造函数与原型对象的同名属性,实例会取哪一个
- Java带参数的线程类ParameterizedThread——即如何给Thread传递参数
- Arcgis api for javascript学习笔记(4.5版本) - 点击多边形(Polygon)并高亮显示
- Qt实用技巧:界面切换使用Dialog全屏切换
- VS2015如何自定义类模板、我的模板——原来这么简单!
- 在WPF窗体中重绘
- HashMap工作原理的介绍!