Barre de progression couleur
Publié : sam. 14/janv./2006 20:11
Ce code permet de créer des barres de progression en couleur
Partie 1
Partie 1
; Gillou
; 14/01/2006
; PureBasic 3.94
DeclareDLL SetProgressBarColorState(IDGadget, State.f)
Procedure PossibleColor(Color.f) ; Test si la couleur est comprise entre 0 et 255 et renvoie la valeur la plus juste
If color > 255 : color = 255
ElseIf color < 0 : color = 0
EndIf
ProcedureReturn color
EndProcedure
Procedure TableToImage(Image, Table) ; Crée une image à partir du tableau Image=#Image, Table=@Tableau(), ex : Dim Tableau(ImageWidth(),ImageHeight()) -> @Tableau()
If IsImage (Image) And Table
ImageID = UseImage (Image)
bm.BITMAP
GetObject_ ( ImageID , SizeOf(BITMAP), @bm.BITMAP)
bmi.BITMAPINFO
bmi\bmiHeader\biSize = SizeOf(BITMAPINFOHEADER)
bmi\bmiheader\biWidth = bm\bmWidth
bmi\bmiheader\biHeight = bm\bmHeight
bmi\bmiheader\biPlanes = 1
bmi\bmiheader\biBitCount = 32
bmi\bmiheader\biCompression = #BI_RGB
pixel = AllocateMemory (bm\bmHeight * bm\bmWidth * 4)
For nn = 0 To bm\bmwidth - 1
For n = 0 To bm\bmheight - 1
s = Table + n * 4 + nn * bm\bmHeight * 4
d = pixel + nn * 4 + (bm\bmHeight - 1 - n) * bm\bmWidth * 4
CopyMemory (s, d + 2, 1)
CopyMemory (s + 1, d + 1, 1)
CopyMemory (s + 2, d, 1)
Next
table + 4
Next
HDC = StartDrawing ( ImageOutput ())
SetDIBits_ (HDC, ImageID , 0, ImageHeight (), pixel, bmi, #DIB_RGB_COLORS )
StopDrawing ()
FreeMemory (pixel)
ProcedureReturn 1
EndIf
EndProcedure