热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

如何将两种颜色与不同的alpha值组合在一起

如何解决《如何将两种颜色与不同的alpha值组合在一起》经验,为你挑选了1个好方法。

我有两种颜色,c 0和c 1.它们具有可变的α,红,绿和蓝值:(a 0,r 0,b 0,g 0)和(a 1,r 1,b 1,g 1).我想知道是否有一个简单的公式来组合这些颜色,以获得正确的新颜色(c 2).

假设c 0覆盖c 1.我知道如果他们有相同的alpha值,那么平均他们比较的红色,绿色和蓝色值就可以了.但是当alpha值不同时,我注意到这不能正常工作 - 似乎alpha决定了每种颜色的RGB值对最终颜色"贡献"的程度.

否则说明,

If a?=a? then:
    a?=a?=a?,
    r?=(r?+r?)/2,
    g?=(g?+g?)/2,
    b?=(b?+b?)/2
Else:
    a?=(a?+a?)/2,
    r?=?,
    g?=?,
    b?=?

小智.. 13

简短回答:

如果我们想要在c 1上覆盖c 0,那么两者都有一些alpha

a 01 =(1 - a 0)·a 1 + a 0

r 01 =((1-a 0)·a 1 ·r 1 + a 0 ·r 0)/ a 01

g 01 =((1-a 0)·a 1 ·g 1 + a 0 ·g 0)/ a 01

b 01 =((1 - a 0)·a 1 ·b 1 + a 0 ·b 0)/ a 01

请注意,在颜色分量的公式中除以01.这一点很重要.

答案很长:

为当c的颜色的基本公式0叠加不透明Ç 1具有α一个0

r 0超过1 =(1 - a 0)·r 1 + a 0 ·r 0

// g&b组件也是如此

所以,如果有另一颜色C 2和c 1实际上不是不透明的,但有一个alpha一个1我们可以覆盖第一C 1在c上方2以及c 0以上所产生的颜色.

r 1超过2 =(1 - a 1)·r 2 + a 1 ·r 1

r 0 over(1 over 2) =(1 - a 0)·((1 - a 1)·r 2 + a 1 ·r 1)+ a 0 ·r 0

如果我们有一个颜色c 01覆盖c 2,结果与覆盖第一个c 1相同,然后是c 0,它将是这样的:

r 01 over 2 =(1 - a 01)·r 2 + a 01 ·r 01

好吧,让它们相等:

(1 - a 01)·r 2 + a 01 ·r 01 =(1 - a 0)·((1 - a 1)·r 2 + a 1 ·r 1)+ a 0 ·r 0 =(1 - a 0)·(1 - a 1)·r 2 +(1 - a 0)·a 1 ·r 1 + a 0 ·r 0

所以

1 - a 01 =(1 - a 0)·(1 - a 1)= 1 - ((1 - a 0)·a 1 + a 0)

a 01 ·r 01 =(1 - a 0)·a 1 ·r 1 + a 0 ·r 0



1> 小智..:

简短回答:

如果我们想要在c 1上覆盖c 0,那么两者都有一些alpha

a 01 =(1 - a 0)·a 1 + a 0

r 01 =((1-a 0)·a 1 ·r 1 + a 0 ·r 0)/ a 01

g 01 =((1-a 0)·a 1 ·g 1 + a 0 ·g 0)/ a 01

b 01 =((1 - a 0)·a 1 ·b 1 + a 0 ·b 0)/ a 01

请注意,在颜色分量的公式中除以01.这一点很重要.

答案很长:

为当c的颜色的基本公式0叠加不透明Ç 1具有α一个0

r 0超过1 =(1 - a 0)·r 1 + a 0 ·r 0

// g&b组件也是如此

所以,如果有另一颜色C 2和c 1实际上不是不透明的,但有一个alpha一个1我们可以覆盖第一C 1在c上方2以及c 0以上所产生的颜色.

r 1超过2 =(1 - a 1)·r 2 + a 1 ·r 1

r 0 over(1 over 2) =(1 - a 0)·((1 - a 1)·r 2 + a 1 ·r 1)+ a 0 ·r 0

如果我们有一个颜色c 01覆盖c 2,结果与覆盖第一个c 1相同,然后是c 0,它将是这样的:

r 01 over 2 =(1 - a 01)·r 2 + a 01 ·r 01

好吧,让它们相等:

(1 - a 01)·r 2 + a 01 ·r 01 =(1 - a 0)·((1 - a 1)·r 2 + a 1 ·r 1)+ a 0 ·r 0 =(1 - a 0)·(1 - a 1)·r 2 +(1 - a 0)·a 1 ·r 1 + a 0 ·r 0

所以

1 - a 01 =(1 - a 0)·(1 - a 1)= 1 - ((1 - a 0)·a 1 + a 0)

a 01 ·r 01 =(1 - a 0)·a 1 ·r 1 + a 0 ·r 0


推荐阅读
  • 本文由编程笔记#小编为大家整理,详细介绍了Flutter中设置分割线Divider的用法,包括高度、缩进和颜色等属性,希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了如何使用MATLAB调用摄像头进行人脸检测和识别。首先需要安装扩展工具,并下载安装OS Generic Video Interface。然后使用MATLAB的机器视觉工具箱中的VJ算法进行人脸检测,可以直接调用CascadeObjectDetector函数进行检测。同时还介绍了如何调用摄像头进行人脸识别,并对每一帧图像进行识别。最后,给出了一些相关的参考资料和实例。 ... [详细]
  • 20210304力扣 根据前序遍历和中序遍历确定二叉树 快速排序思想
    力扣根据前序遍历和中序遍历确定二叉树基本思路前序遍历确定根节点是哪个(第一个就是根节点)中序遍历根据已知根节点确定左右子树的元素组成根节点左左子树根节点右右子树再根据前序遍历确定左 ... [详细]
  • skia~setDIBitsToDevice~Windows
    问题:skia是一个图形库,本身没有在设备上作图的能力,可以通过提供的SkView类,参考实现对不同平台设备上作画。SkOsWindow_Win.cpp:onPaint方法中提供了 ... [详细]
  • 使用C#通过Skype调用我想为像贾维斯这样的盲人开发助理软件。它是一个C#表单应用程序。我需要将我的C#项目与SkypeAPI连接,以便使用Skype调用一些用户名。当我使用Ca ... [详细]
  • 开发笔记:小白python机器学习之路——支持向量机
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了小白python机器学习之路——支持向量机相关的知识,希望对你有一定的参考价值。支持 ... [详细]
  • 记录一些 Latex 的技巧
    Latex一些技巧:1.如何创建不浮动的的figure和table\makeatletter\newcommand{\figcaption}{\def\captyp ... [详细]
  • POJ 1046 Color Me Less
    ColorMeLessTimeLimit: 1000MS MemoryLimit: 10000KTotalSubmissions: 31449 Accept ... [详细]
  • PS网页设计教程VIII——在Photoshop中设计不同寻常布局
    作为编码者,美工基础是偏弱的。我们可以参考一些成熟的网页PS教程,提高自身的设计能力。套用一句话,“熟读唐诗三百首,不会作诗也会吟”。本系列的教程来源于网上的PS教程,都是国外的,全英文的。本人尝 ... [详细]
  • 我正在使用ChemDoodleWebComponents在网页上显示分子。基本上,我可以在我的页面中插入以下脚本,它将创建一个HTML5canvas元素来显示分子。vartrans ... [详细]
  • Qt编写自定义控件57直方波形图
    一、前言直方波形图控件非原创控件,控件大全中大概有20-30个控件非自己原创,而是参考了网上开源的代码,自己加以整理和完善,新增了插件的代码使得可以直接集成到QtDesigner或 ... [详细]
  • ruby 输出彩色内容到控制台
    程序输出控制台时,为了区分输出信息的严重程度,可以使用颜色、符号等来做标识。ruby也支持设置输出内容的颜色,比如运行以下代码:以下内容是百度到的,因发现很多博客都是同样的写法,所 ... [详细]
  • 如何用R语言做词云图,以某部网络小说为例
    作者:horoR语言中文社区专栏作者知乎ID:https:www.zhihu.compeoplelin-jia-chuan前言一开始,我在 ... [详细]
  • Android——更改colorPrimaryDark颜色的方法
    colorPrimaryDark代表屏幕最上方的那一小块区域这两部分的内容都可以被更改方法一:在appscrresvaluescolors中可以定义颜色属性,然后在 ... [详细]
  • 上一篇《手把手教你用深度学习做物体检测(三):模型训练》中介绍了如何使用yolov3训练我们自己的物体检测模型,本篇文章将重点介绍如何使用我们训练好的模型来检测图片或视频中的物体 ... [详细]
author-avatar
mhq3022863
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有