java后台如何将rgb与16进制颜色进行转换
2017-06-02 14:32
836 查看
首先将rgb颜色转换成16进制
//**将rgb色彩值转成16进制代码** public String convertRGBToHex(int r, int g, int b) { String rFString, rSString, gFString, gSString, bFString, bSString, result; int red, green, blue; int rred, rgreen, rblue; red = r / 16; rred = r % 16; if (red == 10) rFString = "A"; else if (red == 11) rFString = "B"; else if (red == 12) rFString = "C"; else if (red == 13) rFString = "D"; else if (red == 14) rFString = "E"; else if (red == 15) rFString = "F"; else rFString = String.valueOf(red); if (rred == 10) rSString = "A"; else if (rred == 11) rSString = "B"; else if (rred == 12) rSString = "C"; else if (rred == 13) rSString = "D"; else if (rred == 14) rSString = "E"; else if (rred == 15) rSString = "F"; else rSString = String.valueOf(rred); rFString = rFString + rSString; green = g / 16; rgreen = g % 16; if (green == 10) gFString = "A"; else if (green == 11) gFString = "B"; else if (green == 12) gFString = "C"; else if (green == 13) gFString = "D"; else if (green == 14) gFString = "E"; else if (green == 15) gFString = "F"; else gFString = String.valueOf(green); if (rgreen == 10) gSString = "A"; else if (rgreen == 11) gSString = "B"; else if (rgreen == 12) gSString = "C"; else if (rgreen == 13) gSString = "D"; else if (rgreen == 14) gSString = "E"; else if (rgreen == 15) gSString = "F"; else gSString = String.valueOf(rgreen); gFString = gFString + gSString; blue = b / 16; rblue = b % 16; if (blue == 10) bFString = "A"; else if (blue == 11) bFString = "B"; else if (blue == 12) bFString = "C"; else if (blue == 13) bFString = "D"; else if (blue == 14) bFString = "E"; else if (blue == 15) bFString = "F"; else bFString = String.valueOf(blue); if (rblue == 10) bSString = "A"; else if (rblue == 11) bSString = "B"; else if (rblue == 12) bSString = "C"; else if (rblue == 13) bSString = "D"; else if (rblue == 14) bSString = "E"; else if (rblue == 15) bSString = "F"; else bSString = String.valueOf(rblue); bFString = bFString + bSString; result = "#" + rFString + gFString + bFString; return result; }
将hsv颜色转换成rgb格式
//hsv格式颜色转rgb格式 public float[] hsb2rgb(float[] hsb) { float[] rgb= new float[3]; //先令饱和度和亮度为100%,调节色相h for(int offset=240,i=0;i<3;i++,offset-=120) { //算出色相h的值和三个区域中心点(即0°,120°和240°)相差多少,然后根据坐标图按分段函数算出rgb。但因为色环展开后,红色区域的中心点是0°同时也是360°,不好算,索性将三个区域的中心点都向右平移到240°再计算比较方便 float x=Math.abs((hsb[0]+offset)%360-240); //如果相差小于60°则为255 if(x<=60) rgb[i]=255; //如果相差在60°和120°之间, else if(60<x && x<120) rgb[i]=((1-(x-60)/60)*255); //如果相差大于120°则为0 else rgb[i]=0; } //在调节饱和度s for(int i=0;i<3;i++) rgb[i]+=(255-rgb[i])*(1-hsb[1]); //最后调节亮度b for(int i=0;i<3;i++) rgb[i]*=hsb[2]; return rgb; }
相关文章推荐
- IOS小技巧——如何将美工的16进制颜色转换成IOS中的RGB颜色
- 如何对YUV420进行颜色转换RGB24/RGB32
- 如何进行RGB和HSL之间的转换--GDI+
- C# RGB与16进制颜色转换方法
- 如何将简单CMS后台管理系统示例转换为Java、Php等不同后台语言的版本
- easyui datetimebox处理【前台传递到后台是string类型,但是后台定义的是java.util.date,如何自动转换数据类型】
- 使用 Java 进行图像处理 - 取得图像上指定位置像素的 rgb 颜色分量
- 如何用Google APIs和Google的应用系统进行集成(7)----在把JSON转换成XML数据过程中,JSON数据中包含违背XML数据规范:XML节点名不支持数字的Java解决方案
- .NET : 如何将16进制颜色代码转换为十进制
- java 如何将字节数组转换成16进制字符串表示
- 如何将简单CMS后台管理系统示例转换为Java、Php等不同后台语言的版本
- 如何将简单CMS后台管理系统示例转换为Java、Php等不同后台语言的版本
- javascript16进制颜色转换为RGB
- objective-C不支持16进制的颜色表示,需要转换成rgb表示法(笔记)
- java中如何对JFrame进行设置背景颜色和背景图片
- 利用位运算进行颜色转换(hex<->rgb)
- objective-C不支持16进制的颜色表示,需要转换成rgb表示法
- 如何将简单CMS后台管理系统示例转换为Java、Php等不同后台语言的版本
- json数据与JAVA数据的转换 jsonJavaBean.netApache 自己编写了一个工具类,处理页面提交json格式数据到后台,再进行处理成JAVA对象数据 1、DTO:Data T
- rgb颜色转换(16进制->10进制)