Code : Tout sélectionner
; programme pour convertir une image (JPG, PNG, etc) ou un fichier en Base64 (pour intégration sur
; des pages web intégrées à des appliances (Bluecoat, Sonicwall, etc.)
Procedure.s codage(file$)
If ReadFile(0, file$) ; Si le fichier peut être lu , on continue...
length = Lof (0)
*buffer=AllocateMemory(length)
r = ReadData(0,*buffer,length)
CloseFile(0) ; Ferme
Encoded$ = Space(length*3)
Resultat = Base64Encoder(*buffer, length, @Encoded$, length*3)
ProcedureReturn Left(Encoded$,resultat)
Else
ProcedureReturn ""
EndIf
EndProcedure
Procedure afficheText(a$)
b$=""
s.i = Val(GetGadgetText(2))
If s > 0
t=1
Repeat
b$ = b$ + Mid(a$,t,s.i)+Chr(13)+Chr(10)
t = t + s.i
Until t+s.i > Len(a$)
b$ = b$ + Right(a$,Len(a$)-t)
SetGadgetText(3,b$)
EndIf
EndProcedure
UseJPEGImageDecoder()
UseJPEG2000ImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()
UseTGAImageDecoder()
OpenWindow(0,10,10,600,400,"Image-2-BASE64",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ButtonGadget(1,10,5,60,18,"Fichier")
StringGadget(2,150,5,30,18,"76")
EditorGadget(3,10,30,570,350)
TextGadget(5,110,5,50,18,"largeur")
ButtonGadget(4,450,5,60,18,"Copier")
Repeat
a = WaitWindowEvent(50)
If a = #PB_Event_Gadget
Select EventGadget()
Case 1 ; bouton fichier
file$ = OpenFileRequester("Load image","","images|*.jpg;*.png;*.gif",0)
a$ = codage(file$)
afficheText(a$)
Case 2 ;
If Len(a$)>0
afficheText(a$)
EndIf
Case 4
SetClipboardText(GetGadgetText(3))
EndSelect
EndIf
Until a = #PB_Event_CloseWindow