欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > 内容正文

图像滤镜艺术---怀旧风格滤镜,滤镜---怀旧风格

来源: 开发者 投稿于  被查看 34394 次 评论:132

图像滤镜艺术---怀旧风格滤镜,滤镜---怀旧风格


怀旧风格滤镜 本文介绍一款怀旧风格滤镜特效的代码实现,这个滤镜效果跟前面我们介绍的老照片滤镜效果相比,听起来感觉没太大差,实际上老照片不仅 有怀旧的风格,更多了一些怀旧的痕迹,比如照片的褶皱,裂纹等等,而怀旧风格,只是一种发黄的颜色风格而已。 下面给出怀旧风格的代码:  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下载链接:http://www.zealpixel.com/thread-77-1-1.html

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章

    暂无相关文章
相关频道:

用户评论