최근 바뀜
도구
업로드
도움말
길라잡이
위키 문법
특수 문서
문의·신고
디스코드
IP 사용자
216.73.216.135
로그인
모듈:HSL2 문서 원본 보기
←
모듈:HSL2
편집
토론
역사
새로고침
주시
역링크
정보
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
local p = {} local function trim(s) if not s then return nil end return s:match("^%s*(.-)%s*$") end local function hexToRgb(hex) hex = trim(hex):gsub("#", "") if #hex == 6 then return tonumber(hex:sub(1,2),16), tonumber(hex:sub(3,4),16), tonumber(hex:sub(5,6),16) end return 0, 0, 0 end local function rgbToHsl(r, g, b) r, g, b = r/255, g/255, b/255 local max, min = math.max(r,g,b), math.min(r,g,b) local h, s, l = 0, 0, (max + min) / 2 if max ~= min then local d = max - min s = l > 0.5 and d / (2 - max - min) or d / (max + min) if max == r then h = (g - b) / d + (g < b and 6 or 0) elseif max == g then h = (b - r) / d + 2 else h = (r - g) / d + 4 end h = h / 6 end return h * 360, s * 100, l * 100 end function p.main(frameOrArgs) local args -- 🧠 frame인지 직접 args인지 판별 if type(frameOrArgs) == "table" and frameOrArgs.getParent then local frame = frameOrArgs args = frame:getParent() and frame:getParent().args or frame.args else -- Lua 내부 직접 호출용 args = frameOrArgs or {} end local colorStr = args[1] or "" local r = tonumber(args.r) local g = tonumber(args.g) local b = tonumber(args.b) if type(colorStr) == "string" and colorStr:match("^#%x%x%x%x%x%x$") then r, g, b = hexToRgb(colorStr) end if not (r and g and b) then return "Invalid RGB input" end local h, s, l = rgbToHsl(r, g, b) -- 🎯 새 기준 if l < 17.5 then return "HSL(37, 10%, 74%)" elseif l < 64 then l = 75 end return string.format( "HSL(%d, %d%%, %d%%)", math.floor(h + 0.5), math.floor(s + 0.5), math.floor(l + 0.5) ) end return p
이 문서에 포함된 문서:
모듈:HSL2/설명문서
(
원본 보기
)
모듈:HSL2
문서로 돌아갑니다.