题
是有一个简单的方法之间的转换颜色模型,在Java(RGB,单纯疱疹病毒和实验室).
假设RGB颜色模型:
- 我怎么计算出黑体光谱调色板?我想到使用这一热图图。
- 怎么个波长的光谱?
编辑: 我发现的 色彩空间 类可以被用于换算之间的RGB/CIE和许多其他的颜色模型。
解决方案
你可以建立这样的调色板使用单纯疱疹病毒的颜色模型。这很容易,一旦你有单纯疱疹病毒RGB的代码,在地方和玩弄数一些分钟。
然而,我认为这是不值得加码到你的项目的只是为了生成一个小小的调色板。
它更容易和更少的工作取的调色板你需要从文件和增加他们作为一个静态阵列。
Photoshop让你的编辑的调色板和配备了一个非常漂亮的黑体的调色板作为一个预先设定的。
你可以简单地保存这些作为一个。法文件。该文件本身只是一个简单的256色á3字节的文件(以读、绿色、蓝色的。8比特的每个频道)。
其他提示
Java具有内在RGB到HSB转换。每当我需要一个快速的货盘的色彩Java我只是这样做:
public Color[] generateColors(int n)
{
Color[] cols = new Color[n];
for(int i = 0; i < n; i++)
{
cols[i] = Color.getHSBColor((float) i / (float) n, 0.85f, 1.0f);
}
return cols;
}
这是一个快速和肮脏的黑客(我会调整的"魔法"的数字为您应用程序),但是对于我简单使用这产生一个漂亮的明亮的快货盘上。
你可以产生这种颜色谱 https://i.stack.imgur.com/ktLmt.jpg
使用下列代码:
public void render(Screen screen) {
int green = 255;
int red = 0;
for (int i = 0; i <= 255 * 2; i++) {
int rate = i / 255;
screen.fillRect((x + (i * width)/6), y, width, height, new Color(red, green, 0));
red += 1 - rate;
green -= rate;
}
}
这是一个很好的方式来做一个快速转换颜色方在AS3。
/**
* Generate a BitmapData HSL color square (n x n) of hue
* At a low n dimension you get cool blocky color palettes (e.g. try n=10)
*/
function generateColorSquare(n:uint, hue:uint):BitmapData
{
var bd:BitmapData = new BitmapData(n, n, false, 0xFFFFFF);
for (var i:uint=n*n; i > 0; i--)
{
bd.setPixel(i % n, Math.floor(i / n), HSBColor.convertHSBtoRGB(hue, i / (n*n), (1/n) * (i % n) ));
}
return bd;
}
不隶属于 StackOverflow