选取颜色

分享于 

4分钟阅读

Web开发

  繁體 雙語

Sample Image - Pick_Color.jpg

介绍

这是一个有趣的方法,以便从网页中选择颜色。

使用代码

为了达到目的,我们必须转换为Luninosità色调饱和度( HLS ),因为我们知道颜色的坐标来自红色的绿色( RGB )。 函数如下所示:-

PrivateSub Paletta(ByVal TargetForm AsString, _
 ByVal PalettaRow AsLong, _
 ByVal Saturation AsLong)
 Dim RGBColor AsStringDim Gray AsDoubleDim lum AsDoubleDim sat AsDoubleDim hue AsDoubleDim row As HtmlTableRow
 Dim cell As HtmlTableCell
 Dim RBGcolor AsString sat = Saturation/100For hue = 0To359Step (360/PalettaRow)
 row = New HtmlTableRow()
 For lum = 0.1To1Step0.02 cell = New HtmlTableCell()
 HlsToRgb(hue, lum, sat, RGBColor)
 cell.BgColor = RGBColor
 cell.Controls.Add(New HyperLink())
 DirectCast(cell.Controls(0), HyperLink).Text = "_"DirectCast(cell.Controls(0), HyperLink).ForeColor = _
 Color.FromArgb(Val("&h" & Mid(RGBColor, 1, 2)), _
 Val("&h" & Mid(RGBColor, 3, 2)), _
 Val("&h" & Mid(RGBColor, 5, 2)))
 DirectCast(cell.Controls(0), HyperLink).NavigateUrl = _
 TargetForm & "?&C=" & RGBColor
 row.Cells.Add(cell)
 Next lum
 Table1.Rows.Add(row)
 Next hue
 row = New HtmlTableRow()
 For Gray = 0To255Step5.7 cell = New HtmlTableCell()
 cell.BgColor = Right("00" & Hex(Gray), 2) & _
 Right("00" & Hex(Gray), 2) & Right("00" & Hex(Gray), 2)
 cell.Controls.Add(New HyperLink())
 DirectCast(cell.Controls(0), HyperLink).Text = "_"DirectCast(cell.Controls(0), HyperLink).ForeColor = _
 Color.FromArgb(Gray, Gray, Gray)
 DirectCast(cell.Controls(0), HyperLink).NavigateUrl = _
 TargetForm & "?&C=" & Right("00" & Hex(Gray), 2) & _
 Right("00" & Hex(Gray), 2) & Right("00" & Hex(Gray), 2)
 row.Cells.Add(cell)
 Next Gray
 Table1.Rows.Add(row)
 EndSub' Converte HLS in RGBPrivateSub HlsToRgb(ByVal H AsDouble, ByVal L AsDouble, _
 ByVal S AsDouble, ByRef RGBColor AsString)
 Dim p1 AsDoubleDim p2 AsDoubleDim r AsDoubleDim g AsDoubleDim b AsDoubleIf L <= 0.5Then p2 = L * (1 + S)
 Else p2 = L + S - L * S
 EndIf p1 = 2 * L - p2
 If S = 0Then r = Int(L * 255)
 g = Int(L * 255)
 b = Int(L * 255)
 Else r = Int(QqhToRgb(p1, p2, H + 120) * 255)
 g = Int(QqhToRgb(p1, p2, H) * 255)
 b = Int(QqhToRgb(p1, p2, H - 120) * 255)
 EndIf RGBColor = Right("00" & Hex(r), 2) & Right("00" & Hex(g), 2) & _
 Right("00" & Hex(b), 2)
 EndSub

函数 Paletta 预览了结果的页面,给出了组成表和亮度( 翻译到"完全"颜色或者完全灰色)的行数。 打印表格并选择了建议颜色后,将通过以下方式收集结果:

Request.QueryString("C")

Points of Interest

这个代码已经从我的站点站点翻译为 ASP,并用于修改页面站点( 链接。表。等等 )的所有元素

历史记录

这是第一版的选择颜色,但我已经有一些改变已经在思考,更有趣。 再见:)


COL  color  pick  
相关文章