【问题标题】:extratinf RGB components frm HEX digit in javajava中的extratinf RGB组件frm HEX数字
【发布时间】:2010-11-27 06:58:48
【问题描述】:

我有 color= #12FFFF 。那是这种格式的颜色,其中 12FFFF 是十六进制数字。现在我想以十进制获取每个独立的 R、G、B 组件。 我在java中是如何做到的?

【问题讨论】:

    标签: java colors hex


    【解决方案1】:

    不清楚你的问题是什么,但假设颜色是一个字符串,那么我认为你可以这样做:

    String color = "#12FFFF";
    int rgb = Integer.decode(color);
    Color c = new Color(rgb);
    int red = c.getRed();
    int green = c.getGreen();
    int blue = c.getBlue();
    

    这是Color的文档

    【讨论】:

      【解决方案2】:

      使用位操作 - 移位和掩码:

      int rgb = 0x123456;
      
      int red = (rgb >>> 16) & 0xff;
      int green = (rgb >>> 8) & 0xff;
      int blue = (rgb >>> 0) & 0xff;
      

      (显然,右移 0 是无关紧要的,但它非常一致。)

      如果您还没有整数形式的 RGB 值,请在您的问题中提供更多详细信息。

      【讨论】:

        【解决方案3】:
        int rgb = 0x123456;
        
        Color c = new Color(rgb);
        int red = c.getRed();
        int blue = c.getBlue();
        int green = c.getGreen();
        

        如果十六进制在字符串中,您需要先创建一个 Long 并使用 intValue() 来构造颜色。

        【讨论】:

          猜你喜欢
          • 2011-10-04
          • 2015-06-16
          • 1970-01-01
          • 2020-08-22
          • 2016-01-01
          • 1970-01-01
          • 2017-02-17
          • 1970-01-01
          • 2015-06-16
          相关资源
          最近更新 更多