Atitit blend mode COLOR_DODGE 混合模式  “颜色减淡”模式

1.1. 混合模式是图像处理技术中的一个技术名词1

1.2. 目录1

1.3. 颜色减淡COLOR_DODGE的公式如下2

1.4. 详细解释及原理3

1.5. 使用javafx 类库实现图像叠加混合3

1.6. 代码实现 /AtiPlatf_cms/src/com/attilax/img/ImageBlendFilter.java4

1.1. 混合模式是图像处理技术中的一个技术名词

,不仅用于广泛使用的Photoshop中,也应用于AfterEffect、llustrator 、 Dreamweaver、 Fireworks等软件。主要功效是可以用不同的方法将对象颜色与底层对象的颜色混合。当您将一种混合模式应用于某一对象时,在此对象的图层或组下方的任何对象上都可看到混合模式的效果。

1.2. 目录

00001. 1 详细解释及原理

00002. 2 通常

00003. ▪ 正常模式(Normal)

00004. ▪ 溶解模式(Dissolve)

00005. ▪ 背后模式(Behind)

00006. ▪ 清除模式(Clear)

00007. 3 变暗系

00008. ▪ 变暗模式(Darken)

00009. ▪ 正片叠底(Multiply)

00010. ▪ 颜色加深模式(Color Burn)

00011. ▪ 线性加深模式(Linear Burn)

00001. ▪ 深色模式(Darker Color)

00002. 4 变亮系

00003. ▪ 增加模式(Add)

00004. ▪ 变亮模式(Lighten)

00005. ▪ 滤色模式(Screen)

00006. ▪ 颜色减淡模式(Color Dodge)

00007. ▪ 线性减淡模式(Linear Dodge)

00008. ▪ 浅色模式(Lighter Color)

00009. 5 饱和度系

00010. ▪ 叠加模式(Overlay)

00001. ▪ 柔光模式(Soft Light)

00002. ▪ 强光模式(Hard Light)

00003. ▪ 亮光模式(Vivid Light)

00004. ▪ 线性光模式(Linear Light)

00005. ▪ 点光模式(Pin Light)

00006. ▪ 实色混合模式(Hard Mix)

00007. 6 差集系

00008. ▪ 差值模式(Difference)

00001. ▪ 排除模式(Exclusion)

00002. ▪ 减去模式(Subtract)

00003. ▪ 划分模式(Divide)

00004. 7 颜色系

00005. ▪ 色相模式(Hue)

00006. ▪ 饱和度模式(Saturation)

00007. ▪ 颜色模式(Color)

00008. ▪ 亮度模式(Luminosity)

1.3. 颜色减淡COLOR_DODGE的公式如下

P(x,y) = Pb(x,y) + (Pb(x,y)* Pc(x,y)) / (256 - Pc(x,y));

C =MIN( A +(A×B)/(255-B),255)

(255-B)就是得到b的反相

既然知道了算法,现在开始代码:

A为原图gray图, b为上层图片,即是灰度图反相底片高斯模糊后的图片

C的最大值为255,如果超出要截取到255,否则会脸部变黑色。。如果b是255,则除磷错误,需要直接返回255即可

1.4. 详细解释及原理

编辑

以画笔工具为例说明其原理。

任意打开一幅图,选择画笔工具,选择合适的笔刷。设定不同的模式在图像上绘画,即可得到不同的效果。

为了叙述方便,暂且将原图像中的颜色称之为“底色A”画笔的颜色为“绘图色B”,将通过混合模式得到的最后颜色称为“最终色

“颜色减淡”模式的公式是:基色+(基色*混合色)/(255-混合色)= 结果色,其中(255-混合色)当于混合色的反相。

1、若混合色为0(黑色),则由于(基色*混合色)这项为0,则结果色等于基色,图像不发生变化;基混合色为128(50%的黑),情况分为两种:

(1)当基色小于128时,结果色等于2基色,由于这个数值小于255所以呈某种阶调的灰。

(2)而当基色大于128(50%的黑)时,结果色等于2基色,这个值是大于255值,255(白色);

2、若混合色为255(白色),则混合色的反相为0,无论基色为何值,结果色都大于255,归为255(白色)。

1.5. 使用javafx 类库实现图像叠加混合

public static BufferedImage blend_COLOR_DODGE(String topImg,

String lowImg) {

javafx.scene.image.Image topimg_jfxfmt = toImg(topImg);

javafx.scene.image.Image lowImg_jfxFmt = toImg(lowImg);

Blend blend = new Blend(BlendMode.COLOR_DODGE);

blend.setTopInput(new ImageInput(topimg_jfxfmt));

blend.setBottomInput(new ImageInput(lowImg_jfxFmt));

Group grp = new Group();

grp.setEffect(blend);

//WritableImage img = new WritableImage((int) topimg_jfxfmt.getWidth(),

//(int) topimg_jfxfmt.getHeight());

// scene.snapshot(img);

WritableImage img2 = grp.snapshot(new SnapshotParameters(), null);

//StackPane root = javafxUtil.getStackPaneFrmImg(img2);

BufferedImage copy2 =  SwingFXUtils.fromFXImage(img2, null);

copy2 = imgx.Remove_alpha_channel(copy2);

return copy2;

}

1.6. 代码实现 /AtiPlatf_cms/src/com/attilax/img/ImageBlendFilter.java

BufferedImage copy2=new ImageBlendFilter().setBlendMode(ImageBlendFilter.COLOR_DODGE)

.setSecondImage(Gaussiancopy ).filter( gray_copy     , null);

Guass avbove on gray pic..gray pic is blow lev..

// 暂且将原图像中的颜色称之为“底色A”画笔的颜色为“绘图色B”,将

//base ori is a, push pen is b

//yaosi fangfe ,zo div zeor ex..

//  ,公式为:

//C =MIN( A +(A×B)/(255-B),255)

/**

* b = guassBlur[index];

a = gray[index];

。颜色减淡的算法是这样的:C =MIN( A +(A×B)/(255-B),255),其中C为混合结果,A为源像素点,B为目标像素点。

* @param b

* @param a

* @return  其中(255-混合色)当于混合色的反相。

*/

private int modeCOLOR_DODGE(int a, int b) {

if (b >= 255)

return 255;

//if (b < 128)

//System.out.println("Dbg");

if(a<128)

System.out.println("dg");

//try {

float rzt = (float)a + (float)(a * b) /(float) (255 - b);

int clr = (int) rzt;

if (clr > 255)

return 255;

return clr;

// MIN(clr,255);

}

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

Atiend

Atitit blend mode COLOR_DODGE 混合模式  “颜色减淡”模式的更多相关文章

  1. Atitit 颜色平均值cloor grb hsv模式的区别对比

    Atitit 颜色平均值cloor grb hsv模式的区别对比 使用hsv模式平均后会变得更加的靓丽一些..2 public class imgT { public static void main ...

  2. Atitit 图像处理类库安装与安装模式的前世今生与未来大趋势attilax总结.docx

    Atitit 图像处理类库安装与安装模式的前世今生与未来大趋势attilax总结.docx 1. 安装的原理,主要是解压,复制,设置三大步1 2. 目前我们常见的三大种安装模式,二进制模式与源码安装模 ...

  3. Atitit 混合叠加俩张图片的处理 图像处理解决方案 javafx blend

    Atitit 混合叠加俩张图片的处理 图像处理解决方案 javafx blend 1.1. Jhlabs 好像有了可以叠加算法,但是没有找到doc1 1.2. 自己算法叠加1 1.3. 使用javaf ...

  4. JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)

    什么是面向对象?面向对象是一种思想. 面向对象可以把程序中的关键模块都视为对象, 而模块拥有属性及方法. 这样如果我们把一些属性及方法封装起来,日后使用将非常方便,也可以避免繁琐重复的工作.   工厂 ...

  5. Atitti 图像处理 图像混合 图像叠加 blend 原理与实现

    Atitti 图像处理 图像混合 图像叠加 blend 原理与实现 混合模式 编辑 本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 混合模式是图像处理技术中的一个技术名词,不 ...

  6. 经典CSS颜色混合模式

    转自:http://www.webhek.com/css-blend-mode/ 注意:只有使用最新版的谷歌浏览器.火狐浏览器,才能正确的显示本文中的演示. Photoshop里最没有用处的一种功能— ...

  7. Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx

    Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx 分类 图像处理知识点体系 v2 qb24.xlsx 分类 分类 理论知识 图像金字塔 常用底层操作 卷积扫描 ...

  8. PS图层混合模式实例详解

          PS中的很多概念都和Core Graphics中的概念相通,比如蒙版.路径.裁剪.混合模式等等.如果你对Core Graphics中的混合模式不太理解,阅读本篇文章能让你对Core Gra ...

  9. PS图层混合算法之一(不透明度,正片叠底,颜色加深,颜色减淡)

    下列公式中,A代表了上面图层像素的色彩值(A=像素值/255),B代表下面图层像素的色彩值(B=像素值/255),C代表了混合像素的色彩值(真实的结果像素值应该为255*C).该公式也应用于层蒙板. ...

随机推荐

  1. 《photon中配置lite的相关问题》

    前几天在学习photon的时候发现了一个问题: 无论如何都找不到Lite文件夹,我是一个新手这也是写给那些新上手的朋友: 首先下载SDK以后配置完成后无论如何都找不到Lite文件夹和相关的Lite.d ...

  2. DBCP配置数据库连接乱码问题

    driverClassName = com.mysql.jdbc.Driver url = jdbc:mysql:///bigdata username = root password = 82371 ...

  3. SQL一致性错误修复SQL

    USE master; ); SET @databasename = 'BenlaiTask'; ALTER DATABASE BenlaiTask SET SINGLE_USER WITH ROLL ...

  4. Xcode 升级成Xcode 8 版本以后,出现 Signing for "sqlite3--test" requires a development team. 问题的解决

    升级xcode到8版本以后,工程文件会出现以下提示 解决办法就是,点击Team,添加自己的appid,然后选择自己的appid即可, 注意: 这里不需要开发者账号,自己的 apple id,就可以”:

  5. 「2014-2-8」Reading a blog on the pain points of Global Variables of C language

    晚上读到一篇<C 语言全局变量那些事儿>.我先前对链接的理解不深,算是涨了一番姿势.此文吐槽的重点,是「非 static 限定的全局变量」带来的看似出人意料(实则可以被合理解释)的行为.虽 ...

  6. 前端学习之回调函数、call方法、apply方法

    今天学习的内容比较少,大部分时间是自己在写qq音乐和京东移动端的页面.现在说说今天学到的内容: 首先,回调函数,就是在函数内部中调用另外一个函数, 将一个函数当作参数传给另一个函数,被传的函数叫做回调 ...

  7. 图解HTTPS

    看到一篇讲解HTTPS交互的文章,讲得很清楚,备忘一下 来自无网不剩的博客 我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取.所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTP ...

  8. jackson报错 无法解析,但是json一切正常

    因为类里面缺少无参构造(被有参构造盖掉了)

  9. Cron表达式备忘

    Cron表达式(在Quartz.net里面会用到) 由7段构成:秒 分 时 日 月 星期 年(可选)"-" :表示范围  MON-WED表示星期一到星期三"," ...

  10. mono for android学习过程系列教程(6)

    接着上一讲,今天讲的是Button,CheckBox这二个安卓元素, 我们来看第一个Button这个控件,类似winform和webform里面一样,它也是 存在有触发事件的,我们新建初始化项目直接就 ...