모듈:글자색계산: 두 판 사이의 차이

편집 요약 없음
(다른 모듈 포함용 함수)
 
(사용자 2명의 중간 판 10개는 보이지 않습니다)
1번째 줄: 1번째 줄:
local p = {}
local p = {}
function p.calc(frame)
function p.calc(frame)
         local colorCode = frame.args[0]
         local colorCode = frame.args[1]
         local red = tonumber("0x" .. string.sub(colorCode, 2, 3))
         local red = tonumber("0x" .. string.sub(colorCode, 2, 3))
         local green = tonumber("0x" .. string.sub(colorCode, 4, 5))
         local green = tonumber("0x" .. string.sub(colorCode, 4, 5))
         local blue = tonumber("0x" .. string.sub(colorCode, 6, 7))
         local blue = tonumber("0x" .. string.sub(colorCode, 6, 7))
        local a = 1 - (0.299 * red + 0.587 * green + 0.114 * blue) / 255;
if (0.299 * red + 0.587 * green + 0.114 * blue) > 186 then
if a < 0.5 then return "#000000" else return "#FFFFFF" end
            return " #000000"
        else
            return " #FFFFFF"
        end
end
 
function p.calc_( colorCode )
        local red = tonumber("0x" .. string.sub(colorCode, 2, 3))
        local green = tonumber("0x" .. string.sub(colorCode, 4, 5))
        local blue = tonumber("0x" .. string.sub(colorCode, 6, 7))
if (0.299 * red + 0.587 * green + 0.114 * blue) > 186 then
            return " #000000"
        else
            return " #FFFFFF"
        end
end
end
return p
return p

2021년 7월 4일 (일) 14:19 기준 최신판

설명문서 [편집] [역사] [새로고침]

모듈:text로 이전하였습니다.

연습장이나 사용자 문서에서 틀의 사용이나 수정을 연습할 수 있습니다.
분류는 /설명문서에 넣어주세요.

local p = {}
function p.calc(frame)
        local colorCode = frame.args[1]
        local red = tonumber("0x" .. string.sub(colorCode, 2, 3))
        local green = tonumber("0x" .. string.sub(colorCode, 4, 5))
        local blue = tonumber("0x" .. string.sub(colorCode, 6, 7))
	if (0.299 * red + 0.587 * green + 0.114 * blue) > 186 then
            return " #000000"
        else
            return " #FFFFFF"
        end
end

function p.calc_( colorCode )
        local red = tonumber("0x" .. string.sub(colorCode, 2, 3))
        local green = tonumber("0x" .. string.sub(colorCode, 4, 5))
        local blue = tonumber("0x" .. string.sub(colorCode, 6, 7))
	if (0.299 * red + 0.587 * green + 0.114 * blue) > 186 then
            return " #000000"
        else
            return " #FFFFFF"
        end
end
return p