Vbscript 在ASP Classic中将十六进制转换为RGB
您能告诉我如何在ASP Classic/VBScript中将十六进制转换为RGB吗。我尝试在互联网上搜索,尝试了许多建议的解决方案,但没有一个指向我想要实现的目标 我尝试了以下功能,但都不起作用:Vbscript 在ASP Classic中将十六进制转换为RGB,vbscript,asp-classic,hex,rgb,Vbscript,Asp Classic,Hex,Rgb,您能告诉我如何在ASP Classic/VBScript中将十六进制转换为RGB吗。我尝试在互联网上搜索,尝试了许多建议的解决方案,但没有一个指向我想要实现的目标 我尝试了以下功能,但都不起作用: 转换为RBB后,我希望根据背景色设置文本颜色。因此,基本上我的背景色代码是十六进制的。首先,使用“&h”表示法将十六进制代码转换为十进制,并解析结果。在此之后,只需执行基本的位运算符,即可从数字中提取RGB值 Dim hexval : hexval = "fdfeff" Dim rgbval : r
转换为RBB后,我希望根据背景色设置文本颜色。因此,基本上我的背景色代码是十六进制的。首先,使用“&h”表示法将十六进制代码转换为十进制,并解析结果。在此之后,只需执行基本的位运算符,即可从数字中提取RGB值
Dim hexval : hexval = "fdfeff"
Dim rgbval : rgbval = CLng("&h" & hexval)
Dim r : r = (rgbval And &hff0000&) / 65536
Dim g : g = (rgbval And &h00ff00&) / 256
Dim b : b = (rgbval And &h0000ff&)
wscript.echo Join(Array(hexval, rgbval, r, g, b), vbcrlf)
这将产生以下输出:
fefeff
16645887
253
254
255
首先,使用“&h”表示法将十六进制代码转换为十进制代码,并解析结果。在此之后,只需执行基本的位运算符,即可从数字中提取RGB值
Dim hexval : hexval = "fdfeff"
Dim rgbval : rgbval = CLng("&h" & hexval)
Dim r : r = (rgbval And &hff0000&) / 65536
Dim g : g = (rgbval And &h00ff00&) / 256
Dim b : b = (rgbval And &h0000ff&)
wscript.echo Join(Array(hexval, rgbval, r, g, b), vbcrlf)
这将产生以下输出:
fefeff
16645887
253
254
255
这有点长,我相信base16函数可能会更有效,但它可以工作
' Convert Hex to RGB
Function ConvertHexToRBG(theHexColor)
Color = Replace(theHexColor, "#", "")
Red = (Mid(Color, 1, 2))
Green = (Mid(Color, 3, 2))
Blue = (Mid(Color, 5, 2))
ConvertHexToRBG = "RGB("&ConvertHexToInt(red)&","&ConvertHexToInt(green)&","&ConvertHexToInt(blue)&",1)"
End Function
Function ConvertHexToInt(theStr)
If theStr <> "" Then
SELECT Case Left(theStr,1)
Case "F"
T = 15
Case "E"
T = 14
Case "D"
T = 13
Case "C"
T = 12
Case "B"
T = 11
Case "A"
T = 10
Case "9"
T = 9
Case "8"
T = 8
Case "7"
T = 7
Case "6"
T = 6
Case "5"
T = 5
Case "4"
T = 4
Case "3"
T = 3
Case "2"
T = 2
Case "1"
T = 1
CASE "0"
T = 0
Case Else
T = Left(theStr,1)
End SELECT
SELECT Case Right(theStr,1)
Case "F"
D = 15
Case "E"
D = 14
Case "D"
D = 13
Case "C"
D = 12
Case "B"
D = 11
Case "A"
D = 10
Case "9"
D = 9
Case "8"
D = 8
Case "7"
D = 7
Case "6"
D = 6
Case "5"
D = 5
Case "4"
D = 4
Case "3"
D = 3
Case "2"
D = 2
Case "1"
D = 1
CASE "0"
D = 0
Case Else
D = Right(theStr,1)
End SELECT
ConvertHexToInt = CInt(T*16)+CInt(D)
Else
ConvertHexToInt = theStr
End If
将十六进制转换为RGB
函数转换器hextorbg(hexcolor)
颜色=替换(HexColor“#”和“”)
红色=(中间(颜色,1,2))
绿色=(中间(颜色,3,2))
蓝色=(中间色,5,2))
ConvertHexToRBG=“RGB(&ConvertHexToInt(红色)&“&ConvertHexToInt(绿色)&“,&ConvertHexToInt(蓝色)&”,1)”
端函数
函数转换器HEXTOINT(theStr)
如果是“tr”,那么
选择左侧案例(STR,1)
案例“F”
T=15
案例“E”
T=14
案例“D”
T=13
案例“C”
T=12
案例“B”
T=11
案例“A”
T=10
案例“9”
T=9
案例“8”
T=8
案例“7”
T=7
案例“6”
T=6
案例“5”
T=5
案例“4”
T=4
案例“3”
T=3
案例“2”
T=2
案例“1”
T=1
案例“0”
T=0
其他情况
T=左侧(TSTR,1)
结束选择
选择右侧案例(STR,1)
案例“F”
D=15
案例“E”
D=14
案例“D”
D=13
案例“C”
D=12
案例“B”
D=11
案例“A”
D=10
案例“9”
D=9
案例“8”
D=8
案例“7”
D=7
案例“6”
D=6
案例“5”
D=5
案例“4”
D=4
案例“3”
D=3
案例“2”
D=2
案例“1”
D=1
案例“0”
D=0
其他情况
D=右侧(STR,1)
结束选择
ConvertHexToInt=CInt(T*16)+CInt(D)
其他的
ConvertHexToInt=theStr
如果结束
这有点长,我相信base 16函数可能会更有效,但它可以工作
' Convert Hex to RGB
Function ConvertHexToRBG(theHexColor)
Color = Replace(theHexColor, "#", "")
Red = (Mid(Color, 1, 2))
Green = (Mid(Color, 3, 2))
Blue = (Mid(Color, 5, 2))
ConvertHexToRBG = "RGB("&ConvertHexToInt(red)&","&ConvertHexToInt(green)&","&ConvertHexToInt(blue)&",1)"
End Function
Function ConvertHexToInt(theStr)
If theStr <> "" Then
SELECT Case Left(theStr,1)
Case "F"
T = 15
Case "E"
T = 14
Case "D"
T = 13
Case "C"
T = 12
Case "B"
T = 11
Case "A"
T = 10
Case "9"
T = 9
Case "8"
T = 8
Case "7"
T = 7
Case "6"
T = 6
Case "5"
T = 5
Case "4"
T = 4
Case "3"
T = 3
Case "2"
T = 2
Case "1"
T = 1
CASE "0"
T = 0
Case Else
T = Left(theStr,1)
End SELECT
SELECT Case Right(theStr,1)
Case "F"
D = 15
Case "E"
D = 14
Case "D"
D = 13
Case "C"
D = 12
Case "B"
D = 11
Case "A"
D = 10
Case "9"
D = 9
Case "8"
D = 8
Case "7"
D = 7
Case "6"
D = 6
Case "5"
D = 5
Case "4"
D = 4
Case "3"
D = 3
Case "2"
D = 2
Case "1"
D = 1
CASE "0"
D = 0
Case Else
D = Right(theStr,1)
End SELECT
ConvertHexToInt = CInt(T*16)+CInt(D)
Else
ConvertHexToInt = theStr
End If
将十六进制转换为RGB
函数转换器hextorbg(hexcolor)
颜色=替换(HexColor“#”和“”)
红色=(中间(颜色,1,2))
绿色=(中间(颜色,3,2))
蓝色=(中间色,5,2))
ConvertHexToRBG=“RGB(&ConvertHexToInt(红色)&“&ConvertHexToInt(绿色)&“,&ConvertHexToInt(蓝色)&”,1)”
端函数
函数转换器HEXTOINT(theStr)
如果是“tr”,那么
选择左侧案例(STR,1)
案例“F”
T=15
案例“E”
T=14
案例“D”
T=13
案例“C”
T=12
案例“B”
T=11
案例“A”
T=10
案例“9”
T=9
案例“8”
T=8
案例“7”
T=7
案例“6”
T=6
案例“5”
T=5
案例“4”
T=4
案例“3”
T=3
案例“2”
T=2
案例“1”
T=1
案例“0”
T=0
其他情况
T=左侧(TSTR,1)
结束选择
选择右侧案例(STR,1)
案例“F”
D=15
案例“E”
D=14
案例“D”
D=13
案例“C”
D=12
案例“B”
D=11
案例“A”
D=10
案例“9”
D=9
案例“8”
D=8
案例“7”
D=7
案例“6”
D=6
案例“5”
D=5
案例“4”
D=4
案例“3”
D=3
案例“2”
D=2
案例“1”
D=1
案例“0”
D=0
其他情况
D=右侧(STR,1)
结束选择
ConvertHexToInt=CInt(T*16)+CInt(D)
其他的
ConvertHexToInt=theStr
如果结束
color=CLng(“&h”和“00ff00”)
?“无法使其工作”是一个不充分的问题描述。显示您已尝试的内容(即您的代码),并描述所需的实际结果。由于VBScript与VB.NET不同,您链接的解决方案无法工作。color=CLng(“&h”和“00ff00”)
?“无法使其工作”是一个不充分的问题描述。显示您已尝试的内容(即您的代码),并描述所需的和实际的结果。您链接的解决方案无法工作,因为VBScript与VB.NET不同。