【发布时间】:2014-04-27 16:27:59
【问题描述】:
我在 JavaScript 中根据从冷到热的值生成热图样式颜色。但由于某种原因,我得到了一些粉红色和一些紫色。
stackoverflow 上有很多答案,但它们大多与使用 HSL 生成有关,不幸的是,对于 Google 地球,我需要 RGBA 格式(向后作为 ABGR)
1 = 红色 = 热
0.5 = 绿色 = 中间
0 = 蓝色 = 冷
function generateColor(value) {
var r = Math.round(value * 255),
g = Math.round((1 - Math.abs(0.5 - value)) * 255),
b = Math.round((1 - value) * 255);
r = r.toString(16);
g = g.toString(16);
b = b.toString(16);
if (r.length < 2) {
r += r;
}
if (g.length < 2) {
g += g;
}
if (b.length < 2) {
b += b;
}
return 'ff' + b + g + r;
}
这里的某个地方有一个错误!这是我一直用来尝试解决问题的小提琴:
【问题讨论】:
-
你确定是 ABGR 而不是 ARGB?
-
对于 Google 地球,它是 aabbggrr :( developers.google.com/earth/documentation/geometries#linestring
标签: javascript hex rgba