PS中有一种滤镜可以让图像看上去好像历经岁月,微微泛黄

英文中这种图像特效被称为Sepia Tone Effect 直译过来的意思

就是黄褐色特效。它的基本处理算法如下:

1. 首先对图像重新计算RGB值,计算公式如下:

int fr= (int)(((double)tr * 0.393) + ((double)tg * 0.769) + ((double)tb * 0.189)); int fg = (int)(((double)tr * 0.349) + ((double)tg * 0.686) + ((double)tb * 0.168)); int fb= (int)(((double)tr * 0.272) + ((double)tg * 0.534) + ((double)tb * 0.131));2. 对图像计算出来的新的RGB值根据随机权重与旧值混合。

计算随机权重的代码如下:

private double noise() { return Math.random()*0.5 + 0.5; }混合颜色的代码如下:

private double colorBlend(double scale, double dest, double src) { return (scale * dest + (1.0 - scale) * src); }效果如下:

滤镜完全源代码:

package com.gloomyfish.filter.study; import java.awt.image.BufferedImage; public class SepiaToneFilter extends AbstractBufferedImageOp { @Override public BufferedImage filter(BufferedImage src, BufferedImage dest) { int width = src.getWidth(); int height = src.getHeight(); if ( dest == null ) dest = createCompatibleDestImage( src, null ); int[] inPixels = new int[width*height]; int[] outPixels = new int[width*height]; getRGB( src, 0, 0, width, height, inPixels ); int index = 0; for(int row=0; row> 24) & 0xff; tr = (inPixels[index] >> 16) & 0xff; tg = (inPixels[index] >> 8) & 0xff; tb = inPixels[index] & 0xff; //int fr= (int)(((double)tr * 0.393) + ((double)tg * 0.769) + ((double)tb * 0.189)); //int fg = (int)(((double)tr * 0.349) + ((double)tg * 0.686) + ((double)tb * 0.168)); //int fb= (int)(((double)tr * 0.272) + ((double)tg * 0.534) + ((double)tb * 0.131)); int fr = (int)colorBlend(noise(), (tr * 0.393) + (tg * 0.769) + (tb * 0.189), tr); int fg = (int)colorBlend(noise(), (tr * 0.349) + (tg * 0.686) + (tb * 0.168), tg); int fb = (int)colorBlend(noise(), (tr * 0.272) + (tg * 0.534) + (tb * 0.131), tb); outPixels[index] = (ta << 24) | (clamp(fr) << 16) | (clamp(fg) << 8) | clamp(fb); } } setRGB( dest, 0, 0, width, height, outPixels ); return dest; } private double noise() { return Math.random()*0.5 + 0.5; } private double colorBlend(double scale, double dest, double src) { return (scale * dest + (1.0 - scale) * src); } public static int clamp(int c) { return c > 255 ? 255 :( (c < 0) ? 0: c); } public String toString() { return "Sepia Tone Effect - Effect from Photoshop App"; } }

老照片特效 php,图像处理之老照片特效相关推荐

  1. c语言给bmp图片加滤镜,图片编辑器PixelStyle: 图像处理,滤镜特效

    图片编辑器PixelStyle: 图像处理,滤镜特效 支持系统 OS X 10.8 价格 0 下载次数 590 官方网站 *不要错过"超级抠图",一键抠图工具,从此告别PS的蜗牛抠 ...

  2. HTML5动态圆形导航,jQuery带动画特效的圆形导航菜单特效

    这是一款jQuery带动画特效的圆形导航菜单特效.该导航菜单在被点击时,会以动画的方式移动到屏幕中间,并展开为一个圆形菜单,效果非常炫酷. 使用方法 在页面中引入jquery和TweenMax.js的 ...

  3. 2.CCGridAction(3D效果),3D反转特效,凸透镜特效,液体特效,3D翻页特效,水波纹特效,3D晃动的特效,扭曲旋转特效,波动特效,3D波动特效

     1 类图组织 2 实例 CCSprite * spr = CCSprite::create("HelloWorld.png"); spr->setPosition(cc ...

  4. android+播放器+螺旋效果,螺旋丸特效相机(抖音螺旋丸特效)V2.3.0.3 安卓版

    螺旋丸特效相机(抖音螺旋丸特效)是一款抖音螺旋丸特效制作的应用客户端.它是一款全能的视频处理工具,只需添加需要处理的视频,就能快速编辑螺旋丸特效,轻松制作想要的效果.下载使用螺旋丸特效相机,帮你轻松制 ...

  5. html 特效 背景 旋转 圆点 js特效

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha html 特效 背景 旋转 圆点 js特效 阿里云的页面 2018杭州·云栖大会_抢票中 ...

  6. 图像处理之老照片特效

    PS中有一种滤镜可以让图像看上去好像历经岁月,微微泛黄 英文中这种图像特效被称为Sepia Tone Effect 直译过来的意思 就是黄褐色特效.它的基本处理算法如下: 1. 首先对图像重新计算RG ...

  7. android 特效绘图,Android绘图机制与处理技巧——Android图像处理之图形特效处理...

    Android变形矩阵--Matrix 对于图像的图形变换,Android系统是通过矩阵来进行处理的,每个像素点都表达了其坐标的X.Y信息.Android的图形变换矩阵是一个3x3的矩阵,如下图所示: ...

  8. 跟我学Python图像处理丨图像特效处理:毛玻璃、浮雕和油漆特效

    摘要:本文讲解常见的图像特效处理,从而让读者实现各种各样的图像特殊效果,并通过Python和OpenCV实现. 本文分享自华为云社区<[Python图像处理] 二十四.图像特效处理之毛玻璃.浮雕 ...

  9. 视频剪辑,人脸贴纸美颜特效数字图像处理背后的技术-Qt版本

    Qt能做什么?其实大部分都是一些c++最擅长的领域,客户端软件,工具软件. Qt最擅长什么?这个看主流的行业巨头,比如Autodesk的3D建模动画软件maya, Adobe的3D贴图绘制软件Subs ...

最新文章

  1. Scrapy安装错误: error: Microsoft Visual C++ 14.0 is required. Get it with Microsoft Visual C++ Build To
  2. c语言socket实现ftp,C++ socket实现miniFTP
  3. javascript对时间的处理
  4. 史上最详细的客服系统产品落地|后台产品经理的工作实例,有那么苦吗?
  5. 痛与快乐有一个代码是什么_养一只真大型犬的生活是什么样的?铲屎官:痛并快乐着!...
  6. Java 集合Collection常见知识点汇总~
  7. 游三大界后感(付照片)
  8. iOS Nib文件一览
  9. Word批量打印软件/工具
  10. 大数据治理包括哪几个方面
  11. 原来姹紫嫣红开遍 -- 牡丹亭·游园惊梦
  12. 你不知道的Guava用法
  13. SVG In HTML5 Pages
  14. css3如何实现动画效果
  15. accumulate的用法
  16. 键盘大小写切换时小写shift和大写caps Lock按键问题
  17. Solidworks如何标注垂直度,平行度
  18. oracle非分区表,转分区表
  19. 今日小程序推荐:码农老黄历-看今天哪个方位BUG最少
  20. python requests+unittest+beautifulreport+jenkins实现接口自动化(下)

热门文章

  1. C# chart图表的简单使用+Tooltip的信息提示
  2. 游戏用像素画教程知识总结
  3. 如何使用html5的video标签,关于html5 video标签的使用方法
  4. mysql如何批量删除索引_mysql执行大批量删除、查询和索引等操作教程
  5. APOpenSdk支付宝分享Cocoapods
  6. 360手机 360手机刷机最高安卓版本参考
  7. 荣耀v10android,荣耀V10和V9对比 荣耀V10和V9区别大吗
  8. 眼红波士顿动力?谷歌欲重振机器人实验室
  9. mac系统状态监控工具
  10. 2018新版PS 使用技巧及案例讲解-郝沛羽-专题视频课程