62 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
--PICTURE: Rainbow - Dark to Bright
 | 
						|
--by Richard Fhager 
 | 
						|
--http://hem.fyristorg.com/dawnbringer/
 | 
						|
-- Email: dawnbringer@hem.utfors.se
 | 
						|
-- MSN:   annassar@hotmail.com
 | 
						|
--
 | 
						|
-- This script was adopted from Evalion, a Javascript codecrafting/imageprocessing project
 | 
						|
-- http://goto.glocalnet.net/richard_fhager/evalion/evalion.html 
 | 
						|
--
 | 
						|
 | 
						|
--
 | 
						|
function shiftHUE(r,g,b,deg) -- V1.3 R.Fhager 2007, adopted from Evalion
 | 
						|
 local c,h,mi,mx,d,s,p,i,f,q,t
 | 
						|
 c = {g,b,r}
 | 
						|
 mi = math.min(r,g,b)
 | 
						|
 mx = math.max(r,g,b); v = mx;
 | 
						|
 d = mx - mi;
 | 
						|
 s = 0; if mx ~= 0 then s = d/mx; end
 | 
						|
 p = 1; if g ~= mx then p = 2; if b ~= mx then p = 0; end; end
 | 
						|
 
 | 
						|
 if s~=0 then
 | 
						|
  h=(deg/60+(6+p*2+(c[1+p]-c[1+(p+1)%3])/d))%6;
 | 
						|
  i=math.floor(h);
 | 
						|
  f=h-i;
 | 
						|
  p=v*(1-s);
 | 
						|
  q=v*(1-s*f);
 | 
						|
  t=v*(1-s*(1-f));
 | 
						|
  c={v,q,p,p,t,v}
 | 
						|
  r = c[1+i]
 | 
						|
  g = c[1+(i+4)%6]
 | 
						|
  b = c[1+(i+2)%6]
 | 
						|
 end
 | 
						|
 | 
						|
 return r,g,b
 | 
						|
end
 | 
						|
--
 | 
						|
 | 
						|
 | 
						|
w, h = getpicturesize()
 | 
						|
 | 
						|
for y = 0, h - 1, 1 do
 | 
						|
  for x = 0, w - 1, 1 do
 | 
						|
 | 
						|
   -- Fractionalize image dimensions
 | 
						|
   ox = x / w;
 | 
						|
   oy = y / h;
 | 
						|
 | 
						|
   r = 255 * math.sin(oy * 2) 
 | 
						|
   g = (oy-0.5)*512 * oy
 | 
						|
   b = (oy-0.5)*512 * oy
 | 
						|
 | 
						|
   r, g, b = shiftHUE(r,g,b,ox * 360); 
 | 
						|
 
 | 
						|
   c = matchcolor(math.max(0,math.min(255,r)),math.max(0,math.min(255,g)),math.max(0,math.min(255,b)))
 | 
						|
 
 | 
						|
   putpicturepixel(x, y, c);
 | 
						|
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
 |