Voici un bout de code pour enregistrer l'image, en fait j'enregistre chaque point de l'image puis un deuxième code qui lit le fichier et qui cré l'image.
Je n'ai mis que du code pour enregistrer l'image, et le code marche bien.
je cré une image de 14x14 pixels .
Je te conseille de mettre dans le fichier juste avant l'image, la largeur de l'image puis la hauteur de l'image et de lire ces valeurs lors de la lecture du fichier. C'est à mon avis plus souple et permet de redimensionner les images par programme sans problème.
1er code, enregistrement dans le fichier
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 700, 500, #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_MinimizeGadget , "")
CreateGadgetList(WindowID())
Font = LoadFont(200, "ARIAL", 7, #PB_Font_HighQuality)
Resultat = CreateImage(100, 14, 14)
If Resultat And StartDrawing(ImageOutput())
; le fond de l'image en blanc
Box(0, 0, 14, 14, #white)
DrawingMode(4)
; on dessine les 2 rectangles extérieurs de la grille en blue
Box(0, 0, 14, 14, #blue)
; on écrit le chiffre 1 au milieu avec la police sélectionnée
DrawingFont(Font)
Locate((14 -TextLength(Str(1))) / 2, 2)
DrawText(Str(1))
Box(0, 0, 14, 14, #blue)
StopDrawing()
EndIf
If CreateFile(0,"C:\program Files\PureBasic\Projets\Loto\essai.dat")
;Là j'aimerais enregistrer l'image 0
; on récupère chaque point de l'image du hDc en utilisant un useimage si nécessaire
; le tout est de de mettre les points dans un ordre qui sera le même qu'en lecture
StartDrawing(ImageOutput())
For i = 0 To ImageWidth() - 1
For j = 0 To ImageHeight() - 1
WriteLong(Point(i, j))
Next j
Next i
StopDrawing()
CloseFile(0)
ImageGadget(200, 50, 50, 0,0, Resultat)
EndIf
Repeat
Until WaitWindowEvent()= #PB_EventCloseWindow
EndIf
End
2eme code lecture du fichier et création de l'image
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 700, 500, #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_MinimizeGadget , "")
CreateGadgetList(WindowID())
Resultat = CreateImage(100, 14, 14)
If Resultat And StartDrawing(ImageOutput())
If OpenFile(0,"C:\program Files\PureBasic\Projets\Loto\essai.dat")
; on récupère chaque point de l'image
For i = 0 To 13 ; 14 points
For j = 0 To 13
Plot(i, j, ReadLong())
Next j
Next i
StopDrawing()
CloseFile(0)
EndIf
EndIf
ImageGadget(200, 50, 50, 0,0, Resultat)
Repeat
Until WaitWindowEvent()= #PB_EventCloseWindow
EndIf
End