博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Win8 Metro(C#)数字图像处理--2.73一种背景图像融合特效
阅读量:5371 次
发布时间:2019-06-15

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

原文:

///         /// Image merge process.        ///         /// The background image.        /// The source image.        /// One parameter, from 0 to 1.        /// 
public static WriteableBitmap ImageMerge(WriteableBitmap bacImage, WriteableBitmap dstImage, double k) { if (bacImage != null && dstImage != null) { int w = dstImage.PixelWidth; int h = dstImage.PixelHeight; int sw = bacImage.PixelWidth; int sh = bacImage.PixelHeight; WriteableBitmap srcImage = new WriteableBitmap(w, h); byte[] dstValue = dstImage.PixelBuffer.ToArray(); byte[] bacValue = bacImage.PixelBuffer.ToArray(); byte[] tempValue = new byte[dstValue.Length]; int r = 0, g = 0, b = 0, R = 0, G = 0, B = 0; for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { int tx = x % sw; int ty = y % sh; b = bacValue[tx * 4 + ty * w * 4]; g = bacValue[tx * 4 + 1 + ty * w * 4]; r = bacValue[tx * 4 + 2 + ty * w * 4]; B = dstValue[x * 4 + y * w * 4]; G = dstValue[x * 4 + 1 + y * w * 4]; R = dstValue[x * 4 + 2 + y * w * 4]; double xr = 0.0, xb = 0.0, xg = 0.0; xr = ((double)r - ((double)R - (double)k * 255.0)) / (2.0 * 255.0 * k); xg = ((double)g - ((double)G - (double)k * 255.0)) / (2.0 * 255.0 * k); xb = ((double)b - ((double)B - (double)k * 255.0)) / (2.0 * 255.0 * k); tempValue[x * 4 + y * w * 4] = (byte)(255.0 * (1.0 - 3.0 * xb * xb + 2.0 * xb * xb * xb)); tempValue[x * 4 + 1 + y * w * 4] = (byte)(255.0 * (1.0 - 3.0 * xg * xg + 2.0 * xg * xg * xg)); tempValue[x * 4 + 2 + y * w * 4] = (byte)(255.0 * (1.0 - 3.0 * xr * xr + 2.0 * xr * xr * xr)); } } Stream sTemp = srcImage.PixelBuffer.AsStream(); sTemp.Seek(0, SeekOrigin.Begin); sTemp.Write(tempValue, 0, w * 4 * h); return srcImage; } else { return null; } }

最后,分享一个专业的图像处理网站(微像素),里面有很多源代码下载:

posted on
2018-03-13 10:47 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/8554753.html

你可能感兴趣的文章
alibaba / zeus 安装 图解
查看>>
Planned Delivery Time as Work Days (SCN discussion)
查看>>
Ubuntu:让桌面显示回收站
查看>>
Android上传头像代码,相机,相册,裁剪
查看>>
git 安装体验
查看>>
Oracle 给已创建的表增加自增长列
查看>>
《DSP using MATLAB》Problem 2.17
查看>>
if 循环
查看>>
uva 111 History Grading(lcs)
查看>>
Python学习week2-python介绍与pyenv安装
查看>>
php判断网页是否gzip压缩
查看>>
一个有意思的js实例,你会吗??[原创]
查看>>
sql server中bit字段实现取反操作
查看>>
Part3_lesson2---ARM指令分类学习
查看>>
jQuery拖拽原理实例
查看>>
JavaScript 技巧与高级特性
查看>>
Uva 11729 Commando War
查看>>
增强学习(一) ----- 基本概念
查看>>
ubuntu下USB连接Android手机
查看>>
C# 语句 分支语句 switch----case----.
查看>>