相关疑难解决方法(0)

将RGBA颜色转换为RGB

如何将RGBA颜色元组(例如96,96,96,202)转换为相应的RGB颜色元组?

编辑:

我想要的是在白色背景上获得与RGBA元组最相似的RGB值.

rgb image colors

74
推荐指数
4
解决办法
6万
查看次数

有没有一种颜色混合的算法,就像混合真实颜色一样?

RGB颜色的常见混合与绘画的混合颜色非常不同,它是混合光而不是混合颜料.

例如:

Blue (0,0,255) + Yellow (255,255,0) = Grey (128,128,128)
Run Code Online (Sandbox Code Playgroud)

(它应该是蓝色+黄色=绿色)

是否有任何已知的混色算法,就像混合真实颜色一样?


我的方法

我已经尝试过以下内容:

将两种颜色转换为HSV并混合色调(乘以从饱和度计算的系数),以及饱和度和值通道的简单平均值.然后我从两种颜色计算平均亮度,并调整结果颜色以匹配此亮度.这很有效,但色调混合有时是错误的,例如:

Red (Hue 0°) + Blue (Hue 240°) = Green (Hue 120°)
Run Code Online (Sandbox Code Playgroud)

我发现有时我需要将色调值移动360°(当色调之间的差异大于180°时).

Red (Hue 360°) + Blue (Hue 240°) = Magenta/fuchsia (Hue 300°)
Run Code Online (Sandbox Code Playgroud)

但这种转变也不是很好,例如:

Cyan (Hue 179°) + Red (Hue 0°) = Hue 89.5°
Cyan (Hue 181°) + Red (Hue 0°) --> shifting is performed (the difference is greater than 180°)
Cyan (Hue 181°) + Red (Hue 360°) = Hue 270.5°
Run Code Online (Sandbox Code Playgroud)

(色调179 +红色)和(色调181 +红色)产生两种完全不同的颜色. …

language-agnostic algorithm blending colors color-space

59
推荐指数
3
解决办法
2万
查看次数

使用SVG进行加色混合(添加剂混合)

来自平面设计背景,我知道如何作弊创造加色的效果.在这里的另一篇文章中提出了相同的基本解决方案.

上面的帖子是指透明.png文件,但概念是相同的.我想创建的基本效果就像这里所描绘的那样.

我喜欢在SVG中这样做,以便它可以扩展,所以当我谈论一个给定的主题时(让我们只说主题是'绿色')我可以放大图形的那一部分,重叠的区域仍然会正确显示.

这些帖子似乎非常接近:

但是上面没有一个与SVG有关,所以让我给它一个旋转.

graphics svg transparency colors svg-filters

10
推荐指数
3
解决办法
4228
查看次数

如何根据 Alpha 通道混合两种 RGB 颜色(正面和背面)

我正在尝试组合两种 RGBA 颜色,以元组形式给出,例如 (0, 0, 0, 128) 和 (255, 255, 255, 128)。我已经发现非常有帮助,但是我当前的代码(Python)

def get_color(colorRGBA1, colorRGBA2):
    alpha = 255 - (255 - colorRGBA1[3]) * (255 - colorRGBA2[3])
    red   = (colorRGBA1[0] * (255 - colorRGBA2[3]) + colorRGBA2[0] * colorRGBA2[3]) / 255
    green = (colorRGBA1[1] * (255 - colorRGBA2[3]) + colorRGBA2[1] * colorRGBA2[3]) / 255
    blue  = (colorRGBA1[2] * (255 - colorRGBA2[3]) + colorRGBA2[2] * colorRGBA2[3]) / 255
    return (int(red), int(green), int(blue), int(alpha))
Run Code Online (Sandbox Code Playgroud)

以某种方式返回一些奇怪的数字(如 -15874)作为 alpha。其他一切都工作正常,但我不知道如何获取新颜色的 alpha 值。

两种颜色的 alpha 值范围为 …

python alpha rgba

3
推荐指数
1
解决办法
5135
查看次数

计算混合颜色的RGB代码,假设红色,蓝色和黄色作为原色

浅色和油漆之间存在不匹配:虽然物理学家会说三原色是红色,绿色和蓝色,但画家会将红色,蓝色和黄色作为原色.事实上,当用水彩画画时,你不能混合红色,绿色和蓝色的黄色,而不是混合橙色,你只会变成棕色.

这是我正在尝试做的事情:从两种给定的RGB颜色我想计算组合颜色的RGB代码,我希望颜色像水彩一样混合在纸上.据我所知,计算通常如下所示:

  • #FF0000 +#0000FF =#880088((FF + 00)/ 2 = 88,(00 + 00)/ 2 = 00,(00 + FF)/ 2 = 88),所以红色和蓝色给出紫色(因为它应该)
  • #FF0000 +#FFFF00 =#FF8800((FF + FF)/ 2 = FF,(00 + FF)/ 2 = 88,(00 + 00)/ 2 = 00),所以红色和黄色给出橙色(因为它应该)

但是,当混合蓝色和黄色时,结果是灰色的:

  • #0000FF +#FFFF00 =#888888((00 + FF)/ 2 = 88,(00 + FF)/ 2 = 88,(FF + 00)/ 2 = 88)=灰色

在纸上你会期望变绿(#008800)并且在混合颜色时永远不会变灰.

所以我的问题是,我怎么能用绿色交换绿色作为原色,然后我怎样才能计算出符合油漆定律而不是浅色定律的混合色?

colors

2
推荐指数
1
解决办法
7118
查看次数

如何在Javascript中按百分比制作与另一种颜色相似的颜色

我有两种颜色的十六进制形式,#000000#ffffff.我想以百分比的方式将第一种颜色逼近第二种颜色.就像是:

var percent=0.50;
var color1='#000000';
var color2='#ffffff';

var newcolor=approximateColor1ToColor2ByPercent(color1,color2,percent);
//newcolor should be a gray like #808080
Run Code Online (Sandbox Code Playgroud)

这该怎么做?

javascript css

2
推荐指数
1
解决办法
1049
查看次数

Matplotlib:颜色混合或如何预处理颜色以抵消透明度

简而言之:我matplotlib用来绘制散点图和曲面。我遇到了一个问题,因此表面总是绘制在点的顶部而不是应该的后面。

我想通过预处理点的颜色来解决这个问题,这样当被表面覆盖时,我会获得“原始颜色”,这样表面就会出现在点的后面。我color使用HEX值指定点。

我遇到的曲面和点的问题类似于这里描述的问题。


以下是详细信息:

我在 Matplotlib 中有一个蓝色和红色点的 3D 散点图:

self.subplot_3d = self.subplot.scatter(x_red, y_red, z_red, s = 150, c = RED,  depthshade = False, lw = 0, alpha = 1)
self.subplot_3d = self.subplot.scatter(x_blue, y_blue, z_blue, s = 150, c = BLUE,  depthshade = False, lw = 0, alpha = 1)
Run Code Online (Sandbox Code Playgroud)

点是线性可分的 - 存在一个分离平面,将红点和蓝点分开。我绘制平原使用

self.plane = self.subplot.plot_surface(X, Y, Z, antialiased = True, color = RED_BACKGROUND, alpha = 0.5)
Run Code Online (Sandbox Code Playgroud)

我想画两个图:在第一个中,没有单独绘制的平面 - 只有红色和蓝色点(左)。在第二个中有一个分离平面(右)。

在此处输入图片说明 在此处输入图片说明

绘制分离平面后,我无法强制将平面绘制在红点和蓝点之间(正如平面方程和点的位置所预期的那样)平面总是出现在所有点的顶部。

我正在考虑的解决方案如下: …

python color-scheme colors matplotlib

1
推荐指数
1
解决办法
1654
查看次数

如何在特定范围内生成随机颜色?

我环顾了不同的来源:

但是,这些答案都不是我正在寻找的。

我想要做的是获得 2 种颜色范围内的随机颜色,例如紫色和粉红色。对于紫色#6A0DAD和粉红色#FFC0CB,我想在这两种颜色的范围内抓取一种颜色,但要随机一种。所以我会得到例如#D982B5,这是品红色粉红色。

到目前为止,除了制作随机数之外,我不知道从哪里开始。

java colors

0
推荐指数
1
解决办法
477
查看次数