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. Spring In action chapter1_wiringBeans

    Automatically wiring beans Spring attacks automatic wiring from two angles: Component scanning-Sprin ...

  2. js中创建数组的方法

    1.声明或创建一个不指定长度的数组(Array)的方式为: 如:var arrayObj = new Array(); 2.声明或创建一个数组并指定长度的数组(Array)的方式为: 如:var ar ...

  3. jsQunit

    1:什么是单元测试? 1.1:单元测试又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作.单元测试主要是用来检验程式的内部逻辑,也称为个体测试.结构测试或逻辑驱动测试.通常 ...

  4. ES5 getter setter

    最近在学习vuejs,了解到内部实现使用到了es5的Getters和Setters.之前看高程的时候,没有重视这块,今天查看一下文档,了解了他们的作用,再次记录一下,可供以后查看和共享. 定义Gett ...

  5. CMM能力成熟度模型

    CMM把软件企业的过程管理能力划分为5个等级: 1  .初始级:个别的.混乱无序的过程,软件缺乏定义,项目的成功严重依赖于某几个关键人员的努力.软件质量由个人的开发经验来保障. 2.可重复级 实施了基 ...

  6. C2第九次解题报告

    看过题解后如果觉得还算有用,请帮忙加点我所在团队博客访问量 http://www.cnblogs.com/newbe/ http://www.cnblogs.com/newbe/p/4069834.h ...

  7. 一种简单的实现:Android一键换肤功能

    现在的APP开发,通常会提供APP的换肤功能,网上流传的换肤代码和实现手段过于复杂,我把原作者的代码重新整理抽取出来,转换成Eclipse项目,重新整理成正确.可直接运行的项目. 代码运行结果如图. ...

  8. react-native-http请求后navigator导航跳转

    琢磨react-native有一段时间了.对于我来说,它的确是前端开发工作者的福音,因为我可以利用它来写app的代码,而且基本可以一套代码,多个平台使用. 早就想写一篇随笔记录一下react nati ...

  9. 将图片在指定窗口中显示-OpenCV应用学习笔记一

    1.OpenCV模块划分 OpenCV其实就是一堆用C和C++语言来实现计算机视觉算法的源代码文件:例如C接口函数cvCany()实现了Canny边缘提取算法,我们可以直接将这些源代码添加到自己的软件 ...

  10. C++ 非阻塞套接字的使用 (2)

    继续话题——软件中的异步非阻塞通讯方式. 由于软件基于MFC开发,所以实现异步通讯时使用了CAsyncSocket类. 首先要了解CAsyncSocket异步机制,引用自 http://blog.cs ...