-1
是否有工具來創建這種顏色表?我想輸入的十六進制顏色列表和得到的東西回來這樣的:創建十六進制顏色表
我找遍了找一個自動工具,但3頁的谷歌,仍然一無所獲。我想不出任何人想用手工創建這種表格的原因,並且我遇到過很多這樣的表格,因此必須有一種工具來創建HEX顏色的可視化表示。
是否有工具來創建這種顏色表?我想輸入的十六進制顏色列表和得到的東西回來這樣的:創建十六進制顏色表
我找遍了找一個自動工具,但3頁的谷歌,仍然一無所獲。我想不出任何人想用手工創建這種表格的原因,並且我遇到過很多這樣的表格,因此必須有一種工具來創建HEX顏色的可視化表示。
好吧,這裏是我的解決方案中的AutoIt:http://jtmeyer.de/hexColors.exe:
#include <GUIConstants.au3>
#include <Array.au3>
#include <StaticConstants.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#include <Color.au3>
$defaultHexCodes = "003366,003399,0033CC,0033FF,006633,006699,0066CC,0066FF,009933,009966,0099CC,0099FF,00CC33,00CC66,00CC99,00CCFF,00FF33,00FF66,00FF99,00FFCC,330066,330099,3300CC,3300FF,336600,336699,3366CC,3366FF,339900,339966,3399CC,3399FF,33CC00,33CC66,33CC99,33CCFF,33FF00,33FF66,33FF99,33FFCC,660033,660099,6600CC,6600FF,663300,663399,6633CC,6633FF,669900,669933,6699CC,6699FF,66CC00,66CC33,66CC99,66CCFF,66FF00,66FF33,66FF99,66FFCC,990033,990066,9900CC,9900FF,993300,993366,9933CC,9933FF,996600,996633,9966CC,9966FF,99CC00,99CC33,99CC66,99CCFF,99FF00,99FF33,99FF66,99FFCC,CC0033,CC0066,CC0099,CC00FF,CC3300,CC3366,CC3399,CC33FF,CC6600,CC6633,CC6699,CC66FF,CC9900,CC9933,CC9966,CC99FF,CCFF00,CCFF33,CCFF66,CCFF99,FF0033,FF0066,FF0099,FF00CC,FF3300,FF3366,FF3399,FF33CC,FF6600,FF6633,FF6699,FF66CC,FF9900,FF9933,FF9966,FF99CC,FFCC00,FFCC33,FFCC66,FFCC99"
$defaultHexCodes = StringSplit($defaultHexCodes, ",", 2)
Global $cols = 6
GUICreate("HexColors", 640, 480)
$inpHexCodes = GUICtrlCreateEdit(_ArrayToString($defaultHexCodes, @CRLF), 10, 10, 80, 430)
$inpCols = GUICtrlCreateInput($cols, 10, 450, 40, 20)
$btnGenerate = GUICtrlCreateButton("Gen", 60, 450, 30, 20)
GUICtrlCreateUpdown($inpCols)
$image = GUICtrlCreateGraphic(100, 10, 530, 460)
GUICtrlSetState($btnGenerate, $GUI_FOCUS)
Global $labels[1] = [GUICtrlCreateLabel("Hex-Code-Table", 100, 10, 530, 460, $SS_CENTER)]
GUISetState()
$hexCodes = $defaultHexCodes
Do
$msg = GUIGetMsg()
Switch $msg
Case $inpCols
$cols = GUICtrlRead($inpCols)
If $cols < 1 Then GUICtrlSetData($inpCols, 1)
If $cols > 16 Then GUICtrlSetData($inpCols, 16)
Case $btnGenerate
$newHexCodes = GUICtrlRead($inpHexCodes)
$newHexCodes = StringReplace($newHexCodes, @CR, "|")
$newHexCodes = StringStripWS($newHexCodes, 8)
ConsoleWrite("read new hex codes... ")
$hexCodes = StringSplit($newHexCodes, "|", 2)
For $index = UBound($hexCodes) - 1 To 0 Step -1
$hexCode = $hexCodes[$index]
If StringIsXDigit($hexCode) Then
$hexCodes[$index] = "0x" & $hexCode
Else
MsgBox(0, "Error", $hexCode & " is not a hexadecimal code - will be remove")
_ArrayDelete($hexCodes, $index)
EndIf
Next
ConsoleWrite("found " & UBound($hexCodes) & @CR)
GenerateHexTable()
EndSwitch
Until $msg == $GUI_EVENT_CLOSE
Func GenerateHexTable()
GUICtrlDelete($image)
For $label In $labels
GUICtrlDelete($label)
Next
$w = 530
$h = 460
; CleanUp
$image = GUICtrlCreateGraphic(100, 10, 530, 460)
GuiCtrlSetState($image, $GUI_DISABLE)
$hexCodesSize = UBound($hexCodes)
ReDim $labels[$hexCodesSize]
$colWidth = $w/($cols)
$rowHeight = $h/Ceiling($hexCodesSize/($cols))
$row = 0
$col = 0
$index = 0
While $index < $hexCodesSize
For $col = 0 to $cols - 1
$left = Int($colWidth * $col) + 3
$top = Int($rowHeight * $row) + 3
$index = $row * $cols + $col
If $index < UBound($hexCodes) Then
$hexCode = $hexCodes[$index]
GUICtrlSetGraphic($image, $GUI_GR_COLOR, 0, $hexCode)
GUICtrlSetGraphic($image, $GUI_GR_RECT, $left, $top, $colWidth - 3, $rowHeight - 3)
$labels[$index] = GUICtrlCreateLabel(StringMid($hexCode, 3), 100 + $left, 10 + $top, $colWidth - 3, $rowHeight - 3, $SS_CENTER, $WS_EX_TRANSPARENT)
If GetBrightness($hexCode) < 130 Then
GUICtrlSetColor($labels[$index], 0xffffff)
Else
GUICtrlSetColor($labels[$index], 0x000000)
EndIf
GUICtrlSetBkColor($labels[$index], $GUI_BKCOLOR_TRANSPARENT)
EndIf
Next
$row += 1
WEnd
GUICtrlSetGraphic($image, $GUI_GR_REFRESH)
EndFunc
; calculate perceived brightness (0-255)
Func GetBrightness($color)
Return Sqrt(_ColorGetRed($color)^2 * 0.299 + _ColorGetGreen($color)^2 * 0.587 + _ColorGetBlue($color)^2 * 0.114)
EndFunc
你可以從我的網站空間下載該代碼的編譯的可執行文件。
那麼,「3頁的谷歌」似乎不是一個很大的努力,但更多的是不被要求在使用搜索引擎之前詢問; - ) 你用於搜索的術語是什麼?也許你只需要尋找不同的東西? – Samoth
我已經修好了。剛剛製作了一個所有可能的十六進制顏色的列表,使用組合發生器給它0-9和A-F,並在HEX代碼周圍編輯我的「表格」。有時使用搜索引擎不是解決方案,但與人交談是。 – mvaneijgen
好吧,是的。嗯,如果你想表達我的努力,當你不想接受它作爲正確的答案時,至少可以提升我的解決方案會是很好的...... ;-)編碼它很有趣,但它花了我一些時間,並且據我瞭解您的問題,它也適用於... – Samoth