图像滤镜艺术---暗调滤镜
2015-09-11 12:32
399 查看
本文介绍暗调滤镜的实现过程,这个滤镜主要是呈现一种暗调,对比度明显的效果,原理很简单,公式如下: newR = R*R/255; newG = G*G/255; newB = B*B/255; 实现代码如下: private Bitmap FilterProcess(Bitmap a) { Bitmap srcBitmap = new Bitmap(a); int w = srcBitmap.Width; int h = srcBitmap.Height; System.Drawing.Imaging.BitmapData srcData = srcBitmap.LockBits(new Rectangle(0, 0, w, h), System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format32bppArgb); byte* pSrc = (byte*)srcData.Scan0; int offset = srcData.Stride - w * 4; int r, g, b; for (int j = 0; j < h; j++) { for (int i = 0; i < w; i++) { b = pSrc[0]; g = pSrc[1]; r = pSrc[2]; pSrc[2] = (byte)(r * r / 255); pSrc[1] = (byte)(g * g / 255); pSrc[0] = (byte)(b * b / 255); pSrc += 4; } pSrc += offset; } srcBitmap.UnlockBits(srcData); return srcBitmap; } 效果如下: 原图 暗调效果图 最后,放上一个完整的C#/C程序DEMO下载链接:http://www.zealpixel.com/forum.php?mod=viewthread&tid=79&extra=page%3D1 |
相关文章推荐
- 灵活强大的构建系统Gradle
- hdu1151最小路径覆盖
- Linux下软件常见安装方式
- swap文件
- yum报错
- ACM中素数(prime)操作入门解析
- TCP协议疑难杂症全景解析
- 【leetcode每日一题】226.Invert Binary Tree
- LeetCode ||Number of Digit One
- 《JavaScript从入门到精通》学习笔记(1)
- [css]input text ie6/7 border兼容问题
- 从“造”论文到自然而然写论文
- android:allowBackup=true 数据备份(adb backup)+查看(abe unpack backup.ab backup.tar)+恢复(adb re)
- 隐私:网民最常用密码MD5解密
- LeetCode 279 PerfectSquares
- Codeforces Round #257 (Div. 1) B. Jzzhu and Cities (记录最短路数量)
- 最老程序员开发实训9--Android---应用介绍页面实现1
- Uva 11752 The Super Powers
- 杭电 HDU OJ Max Sum ID1003 AC
- KMP算法:用于序列识别