LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version 1)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par falsam »

Le code de fortix en conformité avec la version 5.30 de Pure Basic.

je l'ai laissé dans son jus tout en supprimant ou remplacer les fonctionnalités obsoletes.

J'ai aussi ajouté la visualisation du résultat et modifier la sauvegarde du résultat dans un fichier pbi au lieu d'un txt.

Le résultat est aussi dans le presse papier tant que l'application n'est pas fermé.

Il y a une API qui traine (un bip) sans cette api, le code est Cross-Platform.

Code : Tout sélectionner

;The Fortix    .::Convertor V1::.

Enumeration
  #Editor_0 
  #Button_0
  #Button_1
  #Button_2
EndEnumeration

UseJPEGImageDecoder()
UseTGAImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()

Global FontID1

FontID1 = LoadFont(1, "Courier New", 9, #PB_Font_Bold)


Procedure Open_Editor_0()

  If OpenWindow(#Editor_0, 344, 172, 256, 250, "Fortix_Convertor_DATA",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget  | #PB_Window_TitleBar )
  
    EditorGadget(#Editor_0, 5, 40, 245, 150,#PB_Editor_ReadOnly)
    SetGadgetFont(#Editor_0, FontID1)
    SetGadgetColor(#Editor_0, #PB_Gadget_BackColor, RGB(0,0,0))
    SetGadgetColor(#Editor_0, #PB_Gadget_FrontColor, RGB(0,128,255))
    SetWindowColor(#Editor_0, RGB(0,0,128))
    GadgetToolTip(#Editor_0, "Une fois la liste DATA établit, copier son contenu puis introduisez le en SectionData dans le code en cour d'édition")     
         
    ButtonGadget(#Button_0, 5, 10, 245, 20, "OUVRIR IMAGE")
         
    ButtonGadget(#Button_1, 5, 195, 245, 20, "NOUVELLE IMAGE ?")
    GadgetToolTip(#Button_1, "Appuyer ici pour ouvrir une nouvelle image")
          
    ButtonGadget(#Button_2, 5, 220, 245, 20, "ENREGISTRER IMAGE DATA")
    GadgetToolTip(#Button_2, "Appuyer ici pour enregistrer votre image  DATA  en format texte (*.txt)")  
    
    ProcedureReturn 1  
  EndIf
  
EndProcedure

If Open_Editor_0()
  DisableGadget(#Button_0,0)
  DisableGadget(#Editor_0,1)
  DisableGadget(#Button_1,1)
  DisableGadget(#Button_2,1)
       
  Repeat
    EventID = WaitWindowEvent()
        
    If EventID = #PB_Event_Gadget
      Select EventGadget()  
        Case #Button_0
          Num_$=InputRequester("ID","Attribuez un ID de depart:","0")
                    
     
          If Num_$="" Or Num_$=" "
            Num_$="0"  
          EndIf
          
          Nm_File_$ = OpenFileRequester("Ouverture de l'image à convertir", Nm_File_$, "Fichiers Image|*.jpg;*.jpeg;*.tga;*.bmp;*.png;*.tif;*.gif", 0 )
             
          s$=GetFilePart(Nm_File_$)
                
          Label_$=StringField(s$,1," ")
                    
          If FindString(Label_$,".",1)
            Label_$=StringField(s$,1,".")  
          EndIf
                
          If Nm_File_$
            DisableGadget(#Button_0,1)
            DisableGadget(#Editor_0,0)
            
            If LoadImage(0, Nm_File_$) 
              H = ImageHeight(0) 
              L = ImageWidth(0) 
                            
              AddGadgetItem(#Editor_0, -1, "If CreateImage("+Num_$+", "+Str(L)+", "+Str(H)+")")
              AddGadgetItem(#Editor_0, -1, "")  
              AddGadgetItem(#Editor_0, -1, "    StartDrawing(ImageOutput("+Num_$+"))")
              AddGadgetItem(#Editor_0, -1, "")          
              AddGadgetItem(#Editor_0, -1, "        Restore Label_"+Label_$)
              AddGadgetItem(#Editor_0, -1, "")                                
              AddGadgetItem(#Editor_0, -1, "        For ay=0 To "+Str(H)+"-1")
              AddGadgetItem(#Editor_0, -1, "            For ax=0 To "+Str(L)+"-1")
              AddGadgetItem(#Editor_0, -1, "")            
              AddGadgetItem(#Editor_0, -1, "                Read a.l")
              AddGadgetItem(#Editor_0, -1, "                Plot(ax,ay,a.l)")
              AddGadgetItem(#Editor_0, -1, "")                            
              AddGadgetItem(#Editor_0, -1, "            Next ax")
              AddGadgetItem(#Editor_0, -1, "        Next ay")           
              AddGadgetItem(#Editor_0, -1, "    StopDrawing()")
              AddGadgetItem(#Editor_0, -1, "")    
              AddGadgetItem(#Editor_0, -1, "    ay=0")
              AddGadgetItem(#Editor_0, -1, "    ax=0")
              AddGadgetItem(#Editor_0, -1, "EndIf")                            
              AddGadgetItem(#Editor_0, -1, "")
              AddGadgetItem(#Editor_0, -1, "")
                            
              AddGadgetItem(#Editor_0, -1, "OpenWindow(0, 0, 0, ImageWidth(0), ImageHeight(0), "+Chr(34)+"Preview"+Chr(34)+")")
              AddGadgetItem(#Editor_0, -1, "ImageGadget(0, 0, 0, 0, 0, ImageID(0))") 
              AddGadgetItem(#Editor_0, -1, "Repeat : Until WaitWindowEvent(100) = #PB_Event_CloseWindow")
                            
              AddGadgetItem(#Editor_0, -1, "")
              AddGadgetItem(#Editor_0, -1, "")
                            
              AddGadgetItem(#Editor_0, -1, "DataSection")
              AddGadgetItem(#Editor_0, -1, "   Label_"+Label_$+":")   
                                                         
              StartDrawing(ImageOutput(0))
                     
              For y=0 To H-1
                ligne$="  data.l "
                                    
                For x=0 To L-1;+(2-1)
                  hx$=Hex(Point(x,y))
                  hx$="$"+RSet(hx$,6,"0")
                                    
                  ligne$=ligne$+hx$+","                                     
                Next x
                                    
                ligne$=Left(ligne$, Len(ligne$)-1)                        
                AddGadgetItem(#Editor_0, -1, ligne$)                                  
              Next y 
                                  
              StopDrawing()  
                                               
                      
              AddGadgetItem(#Editor_0, -1, "")                                         
              AddGadgetItem(#Editor_0, -1, "EndDataSection")
                          
              DisableGadget(#Button_1,0)
              DisableGadget(#Button_2,0)
                            
              SetClipboardText(GetGadgetText(#Editor_0))
              
              MessageBeep_(48)
              
            EndIf  
          EndIf 
                      
        Case #Button_1
          ClearGadgetItems(#Editor_0)
                    
          DisableGadget(#Button_0,0)
          DisableGadget(#Editor_0,1)
          DisableGadget(#Button_1,1)
          DisableGadget(#Button_2,1)
          
        Case #Button_2                   
          Datalist$ = GetGadgetText(#Editor_0)
          DestiFichier$ = SaveFileRequester("Enregistrement du fichier à convertir", Nm_File_$+"_VData.pbi", "*.pbi", 0 )
                    
          CreateFile(2,DestiFichier$+"_VData.pbi")
          WriteStringN(2,Datalist$)
          CloseFile(2) 
                    
          ClearGadgetItems(#Editor_0)
                    
          DisableGadget(#Button_0,0)
          DisableGadget(#Editor_0,1)
          DisableGadget(#Button_1,1)
          DisableGadget(#Button_2,1)
          
      EndSelect  
    EndIf  
  Until EventID = #PB_Event_CloseWindow
 
  CloseWindow(#Editor_0)
  End
EndIf
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par Kwai chang caine »

Put...tu chomes pas en ce moment 8O
T'as déjà pas souvent chomé, mais la...y'a les turbos, la nuit c'est fait pour dormir :mrgreen:
FRED va etre obligé de grossir son forfait hébergement avec tout le travail que tu te tapes :lol:

Merci beaucoup du partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par SPH »

Kwai chang caine a écrit :Put...tu chomes pas en ce moment 8O
Il bosse comme Dobro a l'epoque. Il l'a completement remplacé... :P

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par falsam »

SPH a écrit :Il bosse comme Dobro a l'epoque. Il l'a completement remplacé... :P
ça c'est fait ........
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par Kwai chang caine »

Ce SPH...sur l'echelle de 0/10 des fouteurs de merde...je te donnerais ....huummmmmm !!! 15 :mrgreen:
Juste aprés B13 :lol:
Essaye déjà de le suivre avant de l'ouvrir :lol:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par Micoute »

Mais que se passe-t-il donc sur ce forum ? On dirait qu'il y a des contentions ! Il faudrait que quelqu'un fasse entendre sa voix, sinon Je présage de mauvais jours à venir !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par SPH »

Bin quoi ?! J'ai juste dis que falsam est aussi productif que Dobro a l'epoque... (je le dis sans arriere pensee) 8O

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par Micoute »

Bonjour SPH, moi, je te crois !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par SPH »

Micoute a écrit :Bonjour SPH, moi, je te crois !
Thank you baby :lol:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par falsam »

Micoute a écrit :Mais que se passe-t-il donc sur ce forum ? On dirait qu'il y a des contentions !
Tu confonds pas avec des des bas ..... de contention :mrgreen:

Ou alors tu as fais deux mots en un peut etre ...... Contentieux et tensions = Contentions
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par falsam »

La transparence des PNG n'est apparemment pas pris en compte avec ce code.

Le code de ts-soft (Bin2Data.pb) fonctionne bien mieux. Il permet aussi de coder les fichiers sons.
Lien : http://www.purebasic.fr/english/viewtop ... 27&t=49196
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par Kwai chang caine »

SPH a écrit :Bin quoi ?! J'ai juste dis que falsam est aussi productif que Dobro a l'epoque... (je le dis sans arriere pensee)
Drole ce SPH... même quand il fait des compliments :lol:

@MICOUTE
Contention !!! Cool un nouveau mot dans mon dictionnaire 8)
T'inquiettes, SPH et moi on est des vieux de la vieille, et il sait que je l'aime bien 8)
Mais on ne se dit les choses gentilles que par MP, ça regarde personne :mrgreen:
Comment ça...ça devrait etre l'inverse !!! :? :lol:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Message par Micoute »

falsam a écrit :
Micoute a écrit :Mais que se passe-t-il donc sur ce forum ? On dirait qu'il y a des contentions !
Tu confonds pas avec des des bas ..... de contention :mrgreen:

Ou alors tu as fais deux mots en un peut etre ...... Contentieux et tensions = Contentions
Non, j'ai bien dit contention, dans le sens de contrainte, tension ! J'aurais pu écrire animosité, agressivité, amertume, antipathie, désobligeance, inimitié, malveillance, méchanceté, rancoeur, rancune, ressentiment, le français est assez nuancé pour expliquer ce qu'on veut dire !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre