第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > html颜色转换rgba 16进制颜色怎么转换为rgba 怎么获取16进制颜色值rgba的值

html颜色转换rgba 16进制颜色怎么转换为rgba 怎么获取16进制颜色值rgba的值

时间:2019-03-18 18:59:36

相关推荐

html颜色转换rgba 16进制颜色怎么转换为rgba 怎么获取16进制颜色值rgba的值

####16进制颜色值转换为RGB的方法如下

```java

String hexColor = "#B94629";

String strR = hexColor.substring(1,3);

String strG = hexColor.substring(3,5);

String strB = hexColor.substring(5,7);

int red = Integer.parseInt(strR,16);

int green = Integer.parseInt(strG,16);

int blue = Integer.parseInt(strB,16);

System.out.println(red+"="+green+"="+blue);

```

####输出结果是

185=70=41

####打开ps校验一下,#B94629的结果确实是185,70,41

![在线助手](https://upload-images.jianshu.io/upload_images/2704327-c6f9a16859dceb23.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

####16进制颜色值怎么转换为RGB原理

实际上就是把6位16进制表示的颜色值每2位拆分,分别代表R,G,B,然后将16进制转为10进制即可。

####下面是封装后16进制颜色值转换为RGB的方法

```java

/**

* 16进制转rgb

* 在线助手

* @param hexColor

* @return

*/

public static int[] hex2rgb(String hexColor) {

if (hexColor==null || "".equals(hexColor)){

return null;

}

if (!hexColor.startsWith("#")){

hexColor = "#"+hexColor;

}

int[] result = new int[3];

String strR = hexColor.substring(1,3);

String strG = hexColor.substring(3,5);

String strB = hexColor.substring(5,7);

int red = Integer.parseInt(strR,16);

int green = Integer.parseInt(strG,16);

int blue = Integer.parseInt(strB,16);

result[0] =red;

result[1] =green;

result[2] =blue;

return result;

}

```

或者象下面这种写法

```java

/**

* 16进制字符串转rgb

* 在线助手

* @param colorStr "#FFFFFF"

* @return

*/

public static Color hex2Rgb(String colorStr) {

return new Color(

Integer.valueOf( colorStr.substring( 1, 3 ), 16 ),

Integer.valueOf( colorStr.substring( 3, 5 ), 16 ),

Integer.valueOf( colorStr.substring( 5, 7 ), 16 ) );

}

```

####如果还要获取A也就是RGBA

那么传入的字符串就要包含A,就是**RGB是#FFFFFF6位数,RGBA还要加二位,#FFFFFF6XX是8位数**,如果没有A值吗,那么默认获取到的A是255,下面是创建Color的源码

```java

public Color(int r, int g, int b) {

this(r, g, b, 255);

}

```

```java

@ConstructorProperties({"red", "green", "blue", "alpha"})

public Color(int r, int g, int b, int a) {

value = ((a & 0xFF) << 24) |

((r & 0xFF) << 16) |

((g & 0xFF) << 8) |

((b & 0xFF) << 0);

testColorValueRange(r,g,b,a);

}

```

####16进制颜色值转换为RGBA的方法如下

```java

String hexColor = "#B94629B9";

String strR = hexColor.substring(1,3);

String strG = hexColor.substring(3,5);

String strB = hexColor.substring(5,7);

String strA = hexColor.substring(7,9);

int red = Integer.parseInt(strR,16);

int green = Integer.parseInt(strG,16);

int blue = Integer.parseInt(strB,16);

int alpha = Integer.parseInt(strA,16);

System.out.println("r:"+red+",g:"+green+",b:"+blue+",a:"+alpha);

```

```java

r:185,g:70,b:41,a:,185

```

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。