Basic Univers
Declare SetStringManipulationBufferSize(Bytes)
SetStringManipulationBufferSize(1048576)
If OpenWindow(1, 0, 0, 200, 50, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget , "")
NomFichier$ = OpenFileRequester("dobro_datagenerator", "c:\", "Fichiers image|*.bmp", 0 )
If LoadImage(0, NomFichier$)
Hauteur = ImageHeight()
Largeur = ImageWidth()
num = CreateFile(#PB_Any, "data.pb") :
WriteStringN("; codé Par Dobro img to data"):
WriteStringN("Declare WindowCallback(WindowID,message,wParam,lParam)")
WriteStringN("largeur = " + Str(Largeur)):
WriteStringN("hauteur = " + Str(Hauteur))
WriteStringN("CreateImage(1, Largeur, Hauteur)")
WriteStringN("For i = 0 To Largeur -1")
WriteStringN(" For j = 0 To Hauteur -1 ")
WriteStringN(" Read a.l ")
WriteStringN(" If StartDrawing(ImageOutput())")
WriteStringN(" Plot(i,j,a.l) ")
WriteStringN(" StopDrawing() ")
WriteStringN(" EndIf")
WriteStringN(" Next j")
WriteStringN("Next i")
WriteStringN(" titre$ = " + Chr($22)+ NomFichier$ + Chr($22))
WriteStringN("If OpenWindow (1, 0, 0, Largeur, Hauteur, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget,titre$)")
WriteStringN(" SetWindowCallback(@WindowCallback()) ")
WriteStringN(" If StartDrawing(WindowOutput())")
WriteStringN(" DrawImage(UseImage(1), 0, 0) ")
WriteStringN(" StopDrawing() ")
WriteStringN(" EndIf")
WriteStringN(" Repeat")
WriteStringN(" Until WaitWindowEvent()= #PB_EventCloseWindow")
WriteStringN("EndIf ")
WriteStringN("End ")
WriteStringN("Procedure WindowCallback(WindowID,message,wParam,lParam)")
WriteStringN(" res=#PB_ProcessPureBasicEvents")
WriteStringN(" Select message ")
WriteStringN(" Case #WM_PAINT")
WriteStringN(" StartDrawing(WindowOutput())")
WriteStringN(" DrawImage(UseImage(1), 0, 0) ")
WriteStringN(" StopDrawing() ")
WriteStringN(" ProcedureReturn #True ")
WriteStringN(" EndSelect")
WriteStringN(" ProcedureReturn res")
WriteStringN("EndProcedure ")
Resultat = StartDrawing(WindowOutput())
DrawText("encodage en cours " + Chr(10)+" attendre la fermeture de cette fenetre")
StopDrawing()
WriteStringN("DataSection") :
For i = 0 To Largeur - 1
ligne.s = "data.l "
For j = 0 To Hauteur - 1
StartDrawing(ImageOutput() )
ligne.s = ligne.s + Str(Point(i, j))+",":
StopDrawing()
Next j
ligne.s = Left(ligne.s, Len(ligne.s)- 1) :
WriteStringN(ligne.s):
Next i
WriteStringN(" "):
WriteStringN("EndDataSection") :
CloseFile(num)
EndIf
CloseWindow(0)
EndIf
End
Procedure SetStringManipulationBufferSize(Bytes)
PBStringBase.l = 0
PBMemoryBase.l = 0
!MOV eax, dword [PB_StringBase]
!MOV [esp + 4], eax
!MOV eax, dword [PB_MemoryBase]
!MOV [esp + 8], eax
HeapReAlloc_(PBMemoryBase, #GMEM_ZEROINIT, PBStringBase, Bytes)
!MOV dword [_PB_StringBase], eax
EndProcedure