Win8Metro(C#)数字图像处理--2.15图像霓虹效果
来源:互联网 发布:niji日本网络电视直播 编辑:程序博客网 时间:2024/09/21 08:57
[函数名称]
图像霓虹效果函数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;
}
}
[图像效果]
- Win8Metro(C#)数字图像处理--2.15图像霓虹效果
- Win8Metro(C#)数字图像处理--2.16图像浮雕效果
- Win8Metro(C#)数字图像处理--2.17图像木刻效果
- Win8Metro(C#)数字图像处理--2.8图像线性变换
- Win8Metro(C#)数字图像处理--2.11图像锐化
- Win8Metro(C#)数字图像处理--2.26图像减法
- Win8Metro(C#)数字图像处理--2.3图像反色
- Win8Metro(C#)数字图像处理--2.4图像颜色聚类
- Win8Metro(C#)数字图像处理--2.5图像亮度调整
- Win8Metro(C#)数字图像处理--2.6图像对比度调整
- Win8Metro(C#)数字图像处理--2.7图像伪彩色
- Win8Metro(C#)数字图像处理--2.9图像均值滤波
- Win8Metro(C#)数字图像处理--2.10图像中值滤波
- Win8Metro(C#)数字图像处理--2.18图像平移变换
- Win8Metro(C#)数字图像处理--2.19图像水平镜像
- Win8Metro(C#)数字图像处理--2.20图像垂直镜像
- Win8Metro(C#)数字图像处理--2.21二值图像腐蚀
- Win8Metro(C#)数字图像处理--2.22二值图像膨胀
- 安卓消息处理机制
- 日经社説 20150407 電源構成は将来を見据えて議論せよ
- Win8Metro(C#)数字图像处理--2.14Prewitt 边缘检测
- 数据库调优教程(二)慢查询数据准备
- Java中enum的本质
- Win8Metro(C#)数字图像处理--2.15图像霓虹效果
- eclipse,android查看第三方jar源码
- 如何成为优秀的软件开发者?
- 刷新页面,怎么做到不提示“不重新发送消息,则无法刷新页面”
- outlook 关闭最小化
- Win8Metro(C#)数字图像处理--2.16图像浮雕效果
- IP定位
- 社説 20150407 中学教科書検定 歴史と領土への理解深めたい
- LeetCode Binary Tree Right Side View : 思想上的基于队列的广度优先遍历,形式上的一个简单变种