* * *    
Главная » Статьи » Код PB

Просмотров: 1210 | Дата: 08.05.2024 | Коментарии (0)

Случайный градиент обоев




Code
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)) ; - случайная 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










Сайт посвящён языку программирования PureBasic — коммерческий компилятор языка программирования, использующего синтаксис BASIC. Предназначен для создания кроссплатформенных приложений для AmigaOS, Linux, Microsoft Windows, Windows NT и Mac OS X. Разработан компанией Fantaisie Software.