博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图像滤镜艺术---怀旧风格滤镜
阅读量:6240 次
发布时间:2019-06-22

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

原文:

怀旧风格滤镜

本文介绍一款怀旧风格滤镜特效的代码实现,这个滤镜效果跟前面我们介绍的老照片滤镜效果相比,听起来感觉没太大差,实际上老照片不仅 有怀旧的风格,更多了一些怀旧的痕迹,比如照片的褶皱,裂纹等等,而怀旧风格,只是一种发黄的颜色风格而已。
下面给出怀旧风格的代码:
 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 b = 0, g = 0, r = 0, gray = 0;
            for (int j = 0; j < h; j++)
            {
                for (int i = 0; i < w; i++)
                {
                    b = pSrc[0];
                    g = pSrc[1];
                    r = pSrc[2];
                    gray = (272 * r + 534 * g + 131 * b) / 1000;
                    pSrc[0] = (byte)(Math.Min(255, Math.Max(0, gray)));
                    gray = (349 * r + 686 * g + 168 * b) / 1000;
                    pSrc[1] = (byte)(Math.Min(255, Math.Max(0, gray)));
                    gray = (393 * r + 769 * g + 189 * b) / 1000;
                    pSrc[2] = (byte)(Math.Min(255, Math.Max(0, gray)));
                    pSrc += 4;
                }
                pSrc += offset;
            }
            srcBitmap.UnlockBits(srcData);
            return srcBitmap;
        }
代码很短,也很简单,效果却还 不错,下面看下效果:

原图

怀旧风格效果

最后,给出一个完整的程序DEMO下载链接:

DEMO中包含C#/C两种语言接口实现,希望大家喜欢!

转载地址:http://fycia.baihongyu.com/

你可能感兴趣的文章
Oracle巡检
查看>>
【转载】胜者树
查看>>
查看mysql数据库存放的路径|Linux下查看MySQL的安装路径
查看>>
selenium+testNG+Ant
查看>>
1024程序员节,你屯书了吗?(内含福利)
查看>>
移动端JS 触摸事件基础
查看>>
Flex拖动原来如此简单
查看>>
温故而知新:什么是wcf
查看>>
centos语言设置
查看>>
php安装
查看>>
Fragment在getUserVisibleHint时进行加载数据的问题记录
查看>>
使用线程池模拟处理耗时任务,通过websocket提高用户体验
查看>>
Java 内部类种类及使用解析
查看>>
Axure产品原型设计工具
查看>>
spice在桌面虚拟化中的应用系列之三(USB映射实现,SSL加密,密码认证,多客户端支持)...
查看>>
Loading project 91606170 of 1: Project FooBar 问题如何解决?
查看>>
C# yeild使用
查看>>
MapReduce-Hadoop分布式计算模型
查看>>
StrokePlus
查看>>
joisino's travel
查看>>