老照片特效 php,图像处理之老照片特效
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,图像处理之老照片特效相关推荐
- c语言给bmp图片加滤镜,图片编辑器PixelStyle: 图像处理,滤镜特效
图片编辑器PixelStyle: 图像处理,滤镜特效 支持系统 OS X 10.8 价格 0 下载次数 590 官方网站 *不要错过"超级抠图",一键抠图工具,从此告别PS的蜗牛抠 ...
- HTML5动态圆形导航,jQuery带动画特效的圆形导航菜单特效
这是一款jQuery带动画特效的圆形导航菜单特效.该导航菜单在被点击时,会以动画的方式移动到屏幕中间,并展开为一个圆形菜单,效果非常炫酷. 使用方法 在页面中引入jquery和TweenMax.js的 ...
- 2.CCGridAction(3D效果),3D反转特效,凸透镜特效,液体特效,3D翻页特效,水波纹特效,3D晃动的特效,扭曲旋转特效,波动特效,3D波动特效
1 类图组织 2 实例 CCSprite * spr = CCSprite::create("HelloWorld.png"); spr->setPosition(cc ...
- android+播放器+螺旋效果,螺旋丸特效相机(抖音螺旋丸特效)V2.3.0.3 安卓版
螺旋丸特效相机(抖音螺旋丸特效)是一款抖音螺旋丸特效制作的应用客户端.它是一款全能的视频处理工具,只需添加需要处理的视频,就能快速编辑螺旋丸特效,轻松制作想要的效果.下载使用螺旋丸特效相机,帮你轻松制 ...
- html 特效 背景 旋转 圆点 js特效
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha html 特效 背景 旋转 圆点 js特效 阿里云的页面 2018杭州·云栖大会_抢票中 ...
- 图像处理之老照片特效
PS中有一种滤镜可以让图像看上去好像历经岁月,微微泛黄 英文中这种图像特效被称为Sepia Tone Effect 直译过来的意思 就是黄褐色特效.它的基本处理算法如下: 1. 首先对图像重新计算RG ...
- android 特效绘图,Android绘图机制与处理技巧——Android图像处理之图形特效处理...
Android变形矩阵--Matrix 对于图像的图形变换,Android系统是通过矩阵来进行处理的,每个像素点都表达了其坐标的X.Y信息.Android的图形变换矩阵是一个3x3的矩阵,如下图所示: ...
- 跟我学Python图像处理丨图像特效处理:毛玻璃、浮雕和油漆特效
摘要:本文讲解常见的图像特效处理,从而让读者实现各种各样的图像特殊效果,并通过Python和OpenCV实现. 本文分享自华为云社区<[Python图像处理] 二十四.图像特效处理之毛玻璃.浮雕 ...
- 视频剪辑,人脸贴纸美颜特效数字图像处理背后的技术-Qt版本
Qt能做什么?其实大部分都是一些c++最擅长的领域,客户端软件,工具软件. Qt最擅长什么?这个看主流的行业巨头,比如Autodesk的3D建模动画软件maya, Adobe的3D贴图绘制软件Subs ...
最新文章
- Scrapy安装错误: error: Microsoft Visual C++ 14.0 is required. Get it with Microsoft Visual C++ Build To
- c语言socket实现ftp,C++ socket实现miniFTP
- javascript对时间的处理
- 史上最详细的客服系统产品落地|后台产品经理的工作实例,有那么苦吗?
- 痛与快乐有一个代码是什么_养一只真大型犬的生活是什么样的?铲屎官:痛并快乐着!...
- Java 集合Collection常见知识点汇总~
- 游三大界后感(付照片)
- iOS Nib文件一览
- Word批量打印软件/工具
- 大数据治理包括哪几个方面
- 原来姹紫嫣红开遍 -- 牡丹亭·游园惊梦
- 你不知道的Guava用法
- SVG In HTML5 Pages
- css3如何实现动画效果
- accumulate的用法
- 键盘大小写切换时小写shift和大写caps Lock按键问题
- Solidworks如何标注垂直度,平行度
- oracle非分区表,转分区表
- 今日小程序推荐:码农老黄历-看今天哪个方位BUG最少
- python requests+unittest+beautifulreport+jenkins实现接口自动化(下)