【问题标题】:Apply neon effect on solid RGB colors?对纯色 RGB 颜色应用霓虹灯效果?
【发布时间】:2014-06-04 11:11:50
【问题描述】:

我有如下所示的纯色 RGB 颜色。如何将霓虹发光效果应用于纯 RGB 颜色代码。我是编程新手,所以请坦白我对此的无知。

public static final class Color {
        static final float RGB_UPPER_BOUND = 255;
        static final float[] GRAY_RGB = {153/RGB_UPPER_BOUND, 60/RGB_UPPER_BOUND, 243/RGB_UPPER_BOUND};
        static final float[] WHITE_RGB = {255/RGB_UPPER_BOUND, 65/RGB_UPPER_BOUND, 5/RGB_UPPER_BOUND};
        static final float[] BLACK_RGB = {0/RGB_UPPER_BOUND, 0/RGB_UPPER_BOUND, 0/RGB_UPPER_BOUND};
        static final float[] RED_RGB = {255/RGB_UPPER_BOUND, 0/RGB_UPPER_BOUND, 0/RGB_UPPER_BOUND};
        static final float[] BLUE_RGB = {77/RGB_UPPER_BOUND, 77/RGB_UPPER_BOUND, 255/RGB_UPPER_BOUND};
        static final float[] GREEN_RGB = {131/RGB_UPPER_BOUND, 245/RGB_UPPER_BOUND, 44/RGB_UPPER_BOUND};

        public static final float[] WHITE = {
            WHITE_RGB[0],  WHITE_RGB[1],  WHITE_RGB[2],  1.0f,  // bottom left
            WHITE_RGB[0],  WHITE_RGB[1],  WHITE_RGB[2],  1.0f,  // top left
            WHITE_RGB[0],  WHITE_RGB[1],  WHITE_RGB[2],  1.0f,  // bottom right
            WHITE_RGB[0],  WHITE_RGB[1],  WHITE_RGB[2],  1.0f,  // top right
        };

        public static final float[] GRAY = {
            GRAY_RGB[0],  GRAY_RGB[1],  GRAY_RGB[2],  1.0f,
            GRAY_RGB[0],  GRAY_RGB[1],  GRAY_RGB[2],  1.0f,
            GRAY_RGB[0],  GRAY_RGB[1],  GRAY_RGB[2],  1.0f,
            GRAY_RGB[0],  GRAY_RGB[1],  GRAY_RGB[2],  1.0f,
        };

        public static final float[] BLUE = {
            BLUE_RGB[0],  BLUE_RGB[1],  BLUE_RGB[2],  1.0f,
            BLUE_RGB[0],  BLUE_RGB[1],  BLUE_RGB[2],  1.0f,
            BLUE_RGB[0],  BLUE_RGB[1],  BLUE_RGB[2],  1.0f,
            BLUE_RGB[0],  BLUE_RGB[1],  BLUE_RGB[2],  1.0f,
        };

        public static final float[] GREEN = {
            GREEN_RGB[0],  GREEN_RGB[1],  GREEN_RGB[2],  1.0f,
            GREEN_RGB[0],  GREEN_RGB[1],  GREEN_RGB[2],  1.0f,
            GREEN_RGB[0],  GREEN_RGB[1],  GREEN_RGB[2],  1.0f,
            GREEN_RGB[0],  GREEN_RGB[1],  GREEN_RGB[2],  1.0f,
        };

    }

【问题讨论】:

  • 合并GradientPaintAlphaComposite,如引用here的示例所示。
  • 谢谢你的垃圾,你能用一个实际的例子来回答如何将它应用到上面的代码中吗?
  • 不要给你的班级打电话Color。作为 API 的一部分,已经有一个 Color 类。
  • 由您来做研究,阅读@trashgod 提供的链接,并应用那里显示的示例。 SO 用户不会将您可以轻松获得的代码交给您。

标签: java


【解决方案1】:

如果您正在寻找一个非常简单的解决方案, 转换为HSB(色相饱和度亮度)并随时间改变亮度会产生原始发光效果。这类似于缩放 RGB 矢量的大小,只是由于人眼对绿光更敏感而对蓝光不太敏感,所以蓝色对亮度的贡献明显较小,而绿色对亮度的贡献更大!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多