grafX2/share/grafx2/scripts/pal_db_Desaturate.lua
Yves Rizoud 0017fbce72 Lua scripts: Added the 'table' library. Added GPL headers to DawnBringer's scripts (thanks!). 2 cosmetic fixes in scripts.
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@1391 416bcca6-2ee7-4201-b75f-2eb2f807beb1
2010-03-21 15:43:11 +00:00

40 lines
1.0 KiB
Lua

--PALETTE Adjust: Desaturate v1.1
--by Richard Fhager
--http://hem.fyristorg.com/dawnbringer/
-- Copyright 2010 Richard Fhager
--
-- This program is free software; you can redistribute it and/or
-- modify it under the terms of the GNU General Public License
-- as published by the Free Software Foundation; version 2
-- of the License. See <http://www.gnu.org/licenses/>
-- This script was adopted from Evalion, a Javascript codecrafting/imageprocessing project
-- http://goto.glocalnet.net/richard_fhager/evalion/evalion.html
-- Note: Negative values will work as INCREASED saturation, but I'm not sure if this function is 100% correct
--percent = 25
OK,percent = inputbox("Desaturate Palette","Percent %", 25, 0,100,0);
--
function desaturate(percent,r,g,b) -- V1.0 by Richard Fhager
p = percent / 100
a = (math.min(math.max(r,g,b),255) + math.max(math.min(r,g,b),0)) * 0.5 * p
r = r + (a-r*p)
g = g + (a-g*p)
b = b + (a-b*p)
return r,g,b
end
--
if OK == true then
for c = 0, 255, 1 do
setcolor(c, desaturate(percent,getcolor(c)))
end
end