0

MS Acess Color code を持っています。色を RGB または HEX または DEC に変換したい。java を使用して変換する方法。

4

2 に答える 2

2

Arshu の例はうまく機能するように見えますが、コードが多く、何が起こっているのかわからない人にとっては混乱を招く可能性があります。

ここで例を見つけましたhttp://www.thecodingforums.com/threads/bgr-color-to-Java-color.126668/これは古いですが、これまでのところ必要なものにはうまくいくようです。

完全な動作例

import java.awt.Color;

/**
 *
 * @author Konrad
 */
public class colortest
{

    public static Color convert(int BGRColorNumber)
    {
//color codes as a int in form "BGR"
return new Color((BGRColorNumber & 0xFF),
((BGRColorNumber >> 8) & 0xFF),
((BGRColorNumber >> 16) & 0xFF));
}

    public static void main (String[] args)
    {
        Color convert = colortest.convert(16777215);
        System.out.println(convert);
    }

}

//colornum = 16777215; //pure white
//colornum = 255; //pure red
//colornum = 65280; //pure green
//colornum = 16711680; //pure blue

出力: java.awt.Color[r=255,g=255,b=255] 別名ピュア ホワイト。

カラーコードはいたるところにあるので、さらにテストを行う必要がありますが、これで十分のようです。

私が取り組んでいたクロマキープロジェクトで同様のものを使用しました。

于 2014-10-12T01:18:17.260 に答える
1

このコードを使用して、MS Access カラー コードを 16 進コードに変換できます。

import java.lang.StringBuilder;

class Test {
private static final int sizeOfIntInHalfBytes = 8;
private static final int numberOfBitsInAHalfByte = 4;
private static final int halfByte = 0x0F;
private static final char[] hexDigits = { 
'0', '1', '2', '3', '4', '5', '6', '7', 
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
};
private static String finalHexCode;

private static String decToHex(int dec) {
StringBuilder hexBuilder = new StringBuilder(sizeOfIntInHalfBytes);
hexBuilder.setLength(sizeOfIntInHalfBytes);
for (int i = sizeOfIntInHalfBytes - 1; i >= 0; --i)
{
  int j = dec & halfByte;
  hexBuilder.setCharAt(i, hexDigits[j]);
  dec >>= numberOfBitsInAHalfByte;
}
return hexBuilder.toString(); 
}

public static String FinalHex(int dec) {
  String ReversedHex = decToHex(dec);
  if(ReversedHex.length() != 0)
      finalHexCode = "#"+ReversedHex.substring(6, 8)+ReversedHex.substring(4, 6)+ReversedHex.substring(2, 4);
  return finalHexCode; 
}
}
于 2013-08-16T06:31:23.263 に答える