WoW:USERAPI HexToRGBPerc: Difference between revisions
Jump to navigation
Jump to search
m (Increased the function's Intelligence.) |
m (Move page script moved page USERAPI HexToRGBPerc to USERAPI HexToRGBPerc without leaving a redirect) |
||
(One intermediate revision by one other user not shown) | |||
Line 2: | Line 2: | ||
__NOTOC__ | __NOTOC__ | ||
Takes a hex string (must be 6 char long!) and converts it to a RGB percent set (0.0-1.0) | |||
local function HexToRGBPerc(hex) | |||
local rhex, ghex, bhex = string.sub(hex, 1, 2), string.sub(hex, 3, 4), string.sub(hex, 5, 6) | |||
return tonumber(rhex, 16)/255, tonumber(ghex, 16)/255, tonumber(bhex, 16)/255 | |||
end | |||
== Alternative Version == | |||
Takes a hex string (must be 3 or 6 chars long!) and converts it to a RGB percent set (0.0-1.0). If ''hex'' is invalid, return black (0,0,0). | Takes a hex string (must be 3 or 6 chars long!) and converts it to a RGB percent set (0.0-1.0). If ''hex'' is invalid, return black (0,0,0). | ||
Latest revision as of 04:49, 15 August 2023
This page documents a <i>user-defined function</i> that you can copy and paste into your addon. Replace PREFIX with your addon or lib prefix to avoid conflicts between different versions of these functions.
Takes a hex string (must be 6 char long!) and converts it to a RGB percent set (0.0-1.0)
local function HexToRGBPerc(hex) local rhex, ghex, bhex = string.sub(hex, 1, 2), string.sub(hex, 3, 4), string.sub(hex, 5, 6) return tonumber(rhex, 16)/255, tonumber(ghex, 16)/255, tonumber(bhex, 16)/255 end
Alternative Version[edit]
Takes a hex string (must be 3 or 6 chars long!) and converts it to a RGB percent set (0.0-1.0). If hex is invalid, return black (0,0,0).
local function HexToRGBPerc(hex) local rhex, ghex, bhex, base if strlen(hex) == 6 then rhex, ghex, bhex = strmatch('([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})', hex) base = 255 elseif strlen(hex) == 3 then rhex, ghex, bhex = strmatch('([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])', hex) base = 16 end if not (rhex and ghex and bhex) then return 0, 0, 0 else return tonumber(rhex, 16)/base, tonumber(ghex, 16)/base, tonumber(bhex, 16)/base end end