Files
tokyodark/lua/tokyo/utils.lua
2021-04-21 20:27:59 -03:00

41 lines
1.0 KiB
Lua

local U = {}
function U.tprint(tbl, indent)
if not indent then indent = 0 end
for k, v in pairs(tbl) do
local formatting = string.rep(" ", indent) .. k .. ": "
if type(v) == "table" then
print(formatting)
U.tprint(v, indent + 1)
elseif type(v) == 'boolean' then
print(formatting .. tostring(v))
else
print(formatting .. v)
end
end
end
function U.hex2rgb(hex)
hex = hex:gsub("#", "")
return tonumber("0x" .. hex:sub(1, 2)), tonumber("0x" .. hex:sub(3, 4)),
tonumber("0x" .. hex:sub(5, 6))
end
function U.gamma_corrector(value, gamma)
value = ((value / 255) ^ (1 / gamma)) * 255
return math.min(math.max(math.floor(value), 0), 255)
end
function U.color_gamma(hex, gamma)
if hex:find('#') == nil then
return hex
end
local r, g, b = U.hex2rgb(hex)
r = U.gamma_corrector(r, gamma)
g = U.gamma_corrector(g, gamma)
b = U.gamma_corrector(b, gamma)
return string.format("#%02x%02x%02x", r, g, b)
end
return U