我有一个 MS Acess 颜色代码。我想将颜色转换为 RGB 或 HEX 或 DEC。如何使用 java 转换它。
问问题
1280 次
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 颜色代码转换为十六进制代码:
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 回答