Page 1 of 1

random gradient wallpaper

Posted: Wed Jun 24, 2009 7:22 pm
by hss
yay!

Code: Select all


Procedure.s hex__(h.s)

Protected y.s,z.s=""

h=LCase(h)

If(Mid(h,1,1)="#"):h=Right(h,Len(h)-1):EndIf

If Not((Len(h)=3)Or(Len(h)=6))
ProcedureReturn("0"):EndIf

For x=1 To Len(h):y=Mid(h,x,1)

 If Not((y>="0")And(y<="9")Or(y>="a")And(y<="f"))
 ProcedureReturn("0"):EndIf

 If(Len(h)=3):z+y+y:EndIf

Next

If(z):h=z:EndIf

ProcedureReturn(h)

EndProcedure





Procedure.i G(c1.s,c2.s)

c1=hex__(c1)
c2=hex__(c2)

If(c1="0")Or(c2="0"):Debug "err/hex":End:EndIf

r1=Val(("$"+Mid(c1,1,2))):g1=Val(("$"+Mid(c1,3,2))):b1=Val(("$"+Mid(c1,5,2)))
r2=Val(("$"+Mid(c2,1,2))):g2=Val(("$"+Mid(c2,3,2))):b2=Val(("$"+Mid(c2,5,2)))



CreateImage(0,GetSystemMetrics_(#SM_CXSCREEN),GetSystemMetrics_(#SM_CYSCREEN))

StartDrawing(ImageOutput(0))

For y=0 To ImageHeight(0)

r=Round(r1+(r2-r1)*(y/ImageWidth(0)),#PB_Round_Down)
g=Round(g1+(g2-g1)*(y/ImageWidth(0)),#PB_Round_Down)
b=Round(b1+(b2-b1)*(y/ImageWidth(0)),#PB_Round_Down)

Line(0,y,ImageWidth(0)*2,1,RGB(r,g,b))

Next

StopDrawing()

;ProcedureReturn ImageID(0)

EndProcedure



#bmp_file="c:\bbbbb.bmp"

rnd.s=Str(Random(999999)) ;-- random hex val
rnd=MD5Fingerprint(@rnd,StringByteLength(rnd))


G(Mid(rnd,1,6),Mid(rnd,7,6)) ;hex/from,to (#123,A4c1ff,..)
SaveImage(0,#bmp_file)
SystemParametersInfo_(#SPI_SETDESKWALLPAPER,0,#bmp_file,#SPIF_UPDATEINIFILE)

End


Posted: Wed Jun 24, 2009 10:19 pm
by rsts
Nice.

Easy on the eyes :)

cheers