本文实例讲述了C#图像处理之浮雕效果实现方法。分享给大家供大家参考。具体如下:

//定义浮雕处理函数

public Bitmap PFudiao(Bitmap a)

{

try

{

int w = a.Width;

int h = a.Height;

Bitmap dstBitmap = new Bitmap(w, h, System.Drawing.Imaging.PixelFormat.Format24bppRgb);

System.Drawing.Imaging.BitmapData srcData = a.LockBits(new Rectangle

(0, 0, w, h), System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format24bppRgb);

System.Drawing.Imaging.BitmapData dstData = dstBitmap.LockBits(new Rectangle

(0, 0, w, h), System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format24bppRgb);

unsafe

{

byte* pIn = (byte*)srcData.Scan0.ToPointer();

byte* pOut = (byte*)dstData.Scan0.ToPointer();

byte* p;

int stride = srcData.Stride;

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

{

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

{

//边缘八个点像素不变

if (x == 0 || x == w - 1 || y == 0 || y == h - 1)

{

pOut[0] = pIn[0];

pOut[1] = pIn[1];

pOut[2] = pIn[2];

}

else

{

int r0, r1;

int g1, g0;

int b1, b0;

double vR, vG, vB;

//右

p = pIn - 3;

r1 = p[2];

g1 = p[1];

b1 = p[0];

//中心点

p = pIn;

r0 = p[2];

g0 = p[1];

b0 = p[0];

//使用模板

vR = Math.Abs(r0 - r1+128);

vG = Math.Abs((g0 - g1 + 128));

vB = Math.Abs((b0 - b1 + 128));

if (vR > 0)

{

vR = Math.Min(255, vR);

}

else

{

vR = Math.Max(0, vR);

}

if (vG > 0)

{

vG = Math.Min(255, vG);

}

else

{

vG = Math.Max(0, vG);

}

if (vB > 0)

{

vB = Math.Min(255, vB);

}

else

{

vB = Math.Max(0, vB);

}

pOut[0] = (byte)vB;

pOut[1] = (byte)vG;

pOut[2] = (byte)vR;

}

pIn += 3;

pOut += 3;

}

pIn += srcData.Stride - w * 3;

pOut += srcData.Stride - w * 3;

}

}

a.UnlockBits(srcData);

dstBitmap.UnlockBits(dstData);

return dstBitmap;

}

catch (Exception e)

{

MessageBox.Show(e.Message.ToString());

return null;

}

}

原图:

效果图:

希望本文所述对大家的C#程序设计有所帮助。

java 浮雕_C#图像处理之浮雕效果实现方法相关推荐

  1. java 伴随矩阵_C#计算矩阵的逆矩阵方法实例分析

    本文实例讲述了C#计算矩阵的逆矩阵方法.分享给大家供大家参考.具体如下: 1.代码思路 1)对矩阵进行合法性检查:矩阵必须为方阵 2)计算矩阵行列式的值(Determinant函数) 3)只有满秩矩阵 ...

  2. java基于OpenCv图像处理_读取_保存图片

    java基于openCv图像处理_读取_保存图片 本文使用javaCV封装后的OpenCv <dependency><groupId>org.bytedeco</grou ...

  3. Java中类、常量、变量、方法名等命名规则

    Java中类.常量.变量.方法名等命名规则 命名规则: 命名由字母.数字.下划线.美元符号($)构成. 命名不可以数字作为开头. 长度无限制,但不可存在空格. 大小写所表述内容含义不同. 命名不可与J ...

  4. “ Error:(1, 1) java: 非法字符: ‘\ufeff‘ ”错误的解决方法

    前言:今天为了做作业,在 github 上面下载了个项目,然后在运行项目时发现报错,在此记录一下 " Error:(1, 1) java: 非法字符: '\ufeff' "错误的解 ...

  5. java 匿名list,java创造匿名对象的两种方法

    在java中有时候需要一些匿名对象的使用.可能有些小伙伴拿还不会创造,其实我们在学习一些方法时都或多或少的接触过.本篇所要讲到的创造匿名对象总结了两种方法,分别是静态工具方法和Lambda表达式,我们 ...

  6. Java遍历Map对象的四种方法

    在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHa ...

  7. 将Java程序变成可执行文件的一个简单方法

    将Java程序变成可执行文件的一个简单方法 运行Java程序(SWING或SWT的桌面程序)可以直接执行.class文件或将所有的.class文件及相关的其他文件压缩成.jar文件,然后使用javaw ...

  8. 完美解决Invalid layout of java.lang.String at value问题的方法

    完美解决Invalid layout of java.lang.String at value问题的方法 参考文章: (1)完美解决Invalid layout of java.lang.String ...

  9. java.util.ConcurrentModificationException异常原因及解决方法

    java.util.ConcurrentModificationException异常原因及解决方法 参考文章: (1)java.util.ConcurrentModificationExceptio ...

最新文章

  1. Red Hat Linux 挂载外部资源
  2. 两天入门Python基础(附代码实现)
  3. 简单的JavaScript互斥锁
  4. Generative Adversarial Learning Towards Fast Weakly Supervised Detection(CVPR2018)阅读笔记
  5. Windows下启动,关闭Nginx命令
  6. nodejs 实践项目_NodeJS:最佳生产实践
  7. [转][Python小记] 通俗的理解闭包 闭包能帮我们做什么?
  8. jar编译成exe可执行文件【图文教程】
  9. Linux进程的管理与调度(三) -- Linux进程ID号
  10. shortcutwebsite
  11. 丰田造世界首辆意志控制变速自行车
  12. __wakeup绕过版本_PHP__wakeup()方法
  13. Java 根据输入的a、b、c,计算三角形面积和周长。根据程序上下文以及输入输出样例,填写程序空白,使程序完整
  14. GitHub设置代理 提升速度
  15. torch_points_kernels遭遇 ModuleNotFoundError: No module named ‘torch_points_kernels.points_cpu‘
  16. 教师节我用Python做了个学生点名系统送给老师当礼物,这回毕业稳了
  17. Android开机启动检测和连接wifi检测
  18. 教你用html+js制作一个自己的点名系统,实例代码分享
  19. 【c++入门(2)】关联容器map
  20. 【车载以太网】【测试】Vector测试方案

热门文章

  1. 鼠标悬浮给图片加边框,适合大型展示
  2. js 判断字符串是否为数字
  3. Unity+高通Vuforia SDK——AR播放视频
  4. OPENGL—错误调试—无法解析外部符号
  5. Java项目:SSM实现的儿童摄影预约网站平台
  6. g2o图优化库入门介绍
  7. guns 功能菜单及主题设置
  8. 抢跑数字中国建设,青岛市统计系统考察团赴实在智能调研统计数字员工
  9. idea中方法折叠或是展开的设置
  10. 2018.3.18都江堰双遗马拉松成绩证书查询链接