是有一个简单的方法之间的转换颜色模型,在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;
}

这是一个快速和肮脏的黑客(我会调整的"魔法"的数字为您应用程序),但是对于我简单使用这产生一个漂亮的明亮的快货盘上。

也许我不了解你的问题,但你不可能真正产生一个真正的黑色身光谱从RGB输设备。限色域将是一个问题,如果没有别的。如果你想要的是什么,在视觉上类似于一个黑体光谱,这可能是一个容易得多。

作为一个近似值,从斜坡(R、克,B)(0,0,0)至(255,0,0),然后(255,255,0),然后(255,255,255).那会给你的沉闷-红色橙色的、黄色的,白色的过渡。

如果你想要的东西更多的科学、维基百科上的文章 黑体的辐射 有一些地块的颜色vs的温度。一旦你找出CIE坐标,您可以翻译这些RGB在你最喜欢的颜色的空间。

编辑:发现了一些其他在线参考文献:是什么颜色的太阳? 什么颜色的是黑体?

你可以产生这种颜色谱 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;
            }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top