详细请教:关于十进制RGB颜色值转换十六进制颜色值的算法

详细请教:关于十进制RGB颜色值转换十六进制颜色值的算法,第1张

把十六进制的数前面加0补成长度为6的数,然后前两位化成十进制数代表红色,中间两位化成十进制数代表绿色,最后两位化成十进制数代表蓝色。如&FFFF,先变成00FFFF,于是等于RGB(0,255,255)
网上还有专门的颜色值运算器,要是嫌计算麻烦,就下一个用吧~~~

我对ColorDialog控件不清楚,但一点可以肯定,颜色使用数值属性 *** 作的。因此,

int color = 控件上的选择颜色;
string textColor = colorToString("X"); // 转换成16进制,结果前面没有"0x",需要的话,得自己加
然后设置文本框的内容textBoxText = textColor 即可。

希望有所帮助

存在十六进制转换为RGB的通用计算公式如下:

DC  =  220   R 

14   =   20   G

3C   =  60     B

一一对应的,16进制转10进制。可以用电脑的计算器。科学型。

进制转换如下:

F= 15

E =14

D = 13

C=12

B=11

A=10

扩展资料:

16转10

16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……

所以,在第N(N从0开始)位上,如果是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X 16的N次方。

例:2AF5换算成10进制:

用竖式计算:

第0位: 5 16^0 = 5

第1位: F 16^1 = 240

第2位: A 16^2= 2560

第3位: 2 16^3 = 8192

先把rgb的十六进制值转换成对应的红绿蓝值(例如#FFFFFF,FF是255的16进制,所以结果为255,255,255),然后再用下面的函数
void RGB_to_CMYK(BYTE R, BYTE G, BYTE B, BYTE& C, BYTE& M, BYTE& Y, BYTE& K)
{
C = 255 - R;
M = 255 - G;
Y = 255 - B;
K = C<MC:M;
K = K<YK:Y;
C= C - K;
M = M - K;
Y = Y - K;
}

颜色有多种表达方式,可以用颜色转换工具将rgb颜色转成十六进制颜色,这时颜色就会变成一个值。

1、打开百度搜索“RGB颜色值与十六进制颜色码转换工具”,在展开的搜索结果中找到颜色转换工具网页:

2、打开网页之后,在网页中输入需要转换的rgb颜色值,然后点击“转换”按钮即可完成转换:

3、这时rgb颜色就被转换成一个值了,用鼠标将转换后的值选中,右击被选中的值,在展开的菜单中点击“复制”按钮即可:

把十六进制的数前面加0补成长度为6的数,然后前两位化成十进制数代表红色,中间两位化成十进制数代表绿色,最后两位化成十进制数代表蓝色。如&FFFF,先变成00FFFF,于是等于RGB(0,255,255)

直入主图看代码吧:
import javaawtColor;
public class OperaColor extends Color {
public OperaColor(int r, int g, int b) {
super(r, g, b);
}
/
Returns the HEX value representing the colour in the default sRGB
ColorModel @return the HEX value of the colour in the default sRGB
ColorModel
/
public String getHex() {
return toHex(getRed(), getGreen(), getBlue());
}
/
Returns a web browser-friendly HEX value representing the colour in the
default sRGB ColorModel @param r red @param g green @param b
blue @return a browser-friendly HEX value
/
public static String toHex(int r, int g, int b) {
return "#" + toBrowserHexValue(r) + toBrowserHexValue(g)
+ toBrowserHexValue(b);
}
private static String toBrowserHexValue(int number) {
StringBuilder builder = new StringBuilder(
IntegertoHexString(number & 0xff));
while (builderlength() < 2) {
builderappend("0");
}
return buildertoString()toUpperCase();
}
}
这个问题也是我在远标java上遇到过的问题!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13410635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-30
下一篇 2023-07-30

发表评论

登录后才能评论

评论列表(0条)

保存