PureBasic

Forums PureBasic
Nous sommes le Mer 23/Oct/2019 6:41

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: Convertir un fichier/une image en Base64
MessagePosté: Mer 01/Aoû/2012 14:18 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 25/Aoû/2004 15:14
Messages: 426
Localisation: Grenoble
Les fonctions sont toutes dans Purebasic mais un collègue avait besoin d'un EXE pour pouvoir intégrer des images dans un code HTML... j'ai fait ça à l'arrache (merci Dobro pour le readdata vers un buffer que j'ai trouvé dans un de tes posts)

Code:
; 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

_________________
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye