문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 중 하나의 권한을 가진 사용자에게 제한됩니다: 사용자, 관리자. 문서를 고치려면 이메일 인증 절차가 필요합니다. 사용자 환경 설정에서 이메일 주소를 입력하고 이메일 주소 인증을 해주시기 바랍니다. 문서의 원본을 보거나 복사할 수 있습니다. local p = {} -- 헥스 코드에서 RGB 추출 local function hex_to_rgb(hex) hex = hex:match("^#?(%x%x%x%x%x%x)$") if not hex then return nil, "유효하지 않은 헥스 코드입니다. 6자리 색상 코드 (#RRGGBB)를 입력하세요." end local r = tonumber(hex:sub(1, 2), 16) / 255 local g = tonumber(hex:sub(3, 4), 16) / 255 local b = tonumber(hex:sub(5, 6), 16) / 255 return r, g, b end -- RGB를 HSL로 변환 local function rgb_to_hsl(r, g, b) local max = math.max(r, g, b) local min = math.min(r, g, b) local l = (max + min) / 2 if max == min then return 0, 0, l -- 무채색 end local d = max - min local s = d / (l > 0.5 and (2 - max - min) or (max + min)) local h = ((max == r and (g - b) / d + (g < b and 6 or 0)) or (max == g and (b - r) / d + 2) or (max == b and (r - g) / d + 4)) / 6 return h, s, l end -- HSL을 RGB로 변환 local function hsl_to_rgb(h, s, l) local function hue_to_rgb(p, q, t) if t < 0 then t = t + 1 end if t > 1 then t = t - 1 end if t < 1/6 then return p + (q - p) * 6 * t end if t < 1/2 then return q end if t < 2/3 then return p + (q - p) * (2/3 - t) * 6 end return p end if s == 0 then return l, l, l end -- 무채색 local q = l < 0.5 and l * (1 + s) or l + s - l * s local p = 2 * l - q return hue_to_rgb(p, q, h + 1/3), hue_to_rgb(p, q, h), hue_to_rgb(p, q, h - 1/3) end -- 밝기 조정 local function adjust_lightness(hex, direction, percentage) local r, g, b = hex_to_rgb(hex) if not r then return g end -- 오류 메시지 반환 local h, s, l = rgb_to_hsl(r, g, b) if direction == "brighten" then l = math.min(l + percentage / 100, 1) elseif direction == "darken" then l = math.max(l - percentage / 100, 0) else return "방향은 'brighten' 또는 'darken'만 가능합니다." end r, g, b = hsl_to_rgb(h, s, l) return string.format("#%02X%02X%02X", math.floor(r * 255), math.floor(g * 255), math.floor(b * 255)) end -- 메인 함수 function p.adjust(frame) local hex = frame.args[1] or "#808080" -- 기본 색상 local direction = frame.args[2] or "brighten" -- 기본 방향 local percentage = tonumber(frame.args[3]:match("%d+")) or 0 -- 기본 퍼센트 if percentage < 0 or percentage > 100 then return "퍼센트는 0%에서 100% 사이여야 합니다." end return adjust_lightness(hex, direction, percentage) end return p 이 문서에서 사용한 틀: 모듈:AdjustBrightness/설명문서 (원본 보기) 모듈:AdjustBrightness 문서로 돌아갑니다.