Texte => Pixels => Texte - erreurs (A nouveau)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par Ar-S »

kernadec a écrit :ce carré représente le caractère de fin
probablement à la place de chr(10) et chr(13)
Je pense plutôt qu'il affiche tout ce qui est noir comme étant le car chr(255), ce qui est logique.
il faudrait arriver à lui dire que si pixel(RGBA(0,0,0,255)) alors qu'il se stoppe.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par kernadec »

je parlais de l'intérieur du texte pour reformaté le paragraphe
avec ces carrés par série de deux un fin de ligne et un saut de ligne
quatre= idem et un saut de ligne
ensuite tu pourrai éliminé cette série de caractères identiques

Cordialement
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par Ar-S »

En ajoutant du debug, on voit que les valeurs RGBA à lecture du TXT sont bien effectuées.
Le soucis vient donc vraiment du la lecture du 1er pixel lors de la transformation d'IMG en TXT

Code : Tout sélectionner

    ; ASCII2PIC by LDVMULTIMEDIA
    ; Routines de conversion réalisées par Dobro & LNA
    ;P.B 4.10 puis PB 4.20 beta 5 puis 4.20 / de  14/04/2008 au 10/05/2008
    ;PB 4.41 du 23/03/2010 au..
    
    Declare.s pixel_4car(pixel)
    Declare.l car_pixel(car1,car2,car3,car4)
    
    UsePNGImageEncoder()
    UsePNGImageDecoder()
    UseJPEGImageDecoder()
    
    Global V$="2.0 beta2"
    Global Path$=GetCurrentDirectory()
    Global sites$=Chr(10)+"LDV MULTIMEDIA : http://ldvmultimedia.com"+Chr(10)+Chr(10)+Space(15)+"Grand merci à Dobro & LNA"+Chr(10)+" Site de Dobro : http://michel.dobro.free.fr"
    
    lng$="Français"
    If lng$="Français"
      Global Cancel$="Annulé"
      Global errorfile$="Le fichier est introuvable"
      Global nofile$="Le fichier est indisponible pour Le moment, veuillez ré-essayer dans quelques minutes"
      Global ddl$="Téléchargement..."
      Global dejaup$="Vous avez déjà la dernière Version"
      Global QuoideNeuf$=Chr(10)+" "+V$+" - Quoi de neuf ?"+Chr(10)+"> Correctif mineur - Message clignotant pour l'info de mise à jour"+Chr(10)+"> Correction d'un bug majeur de décalage de texte"+Chr(10)+"> Recodage de la gestion des langues pour une compatibilité avec les OS non français ou anglais"+Chr(10)+"> Bug mineur corrigé"+Chr(10)+"> Format BMP supporté"+Chr(10)+"> Mise à jour automatique"+Chr(10)+"> Bug d'affichage de texte long corrigé"+Chr(10)+"> Vérification des extensions"+Chr(10)+"> Copie du texte dans le presse papier"+Chr(10)+"> Copie du texte dans un fichier .txt"
      Global Sign$="2008 / LDV MULTIMEDIA - Ce logiciel est gratuit - http://ldvmultimedia.com"
      Global f3d$="Convertissez un texte en image et vice et versa"
      Global cv1$="Convertir du Texte en image"
      Global cv2$="Convertir une image en Texte"
      Global convert$="Effectuer une conversion"
      Global filtre1$="Ficher Texte|*.txt;*.TXT;*.pb;*.php;*.html;*.htm;*.js;*.ini"
      Global filtre2$="Ficher image (*.png)|*.png;*.PNG"
      Global loadtxt$="Charger un fichier Texte"
      Global alert$="Nombre de caractères trop important !"
      Global wait$="Patientez S.V.P"
      Global png$="Ficher PNG|*.png;*.PNG"
      Global savpng$="Sauver l'image PNG"
      Global about$=Space(8)+"Ce logiciel a été créé par LDVMULTIMEDIA"+Chr(10)+Space(25)+"Codé par Ar-S et Dobro"+Chr(10)+Space(27)+"Ce logiciel est gratuit"+Chr(10)+sites$
      Global over$="Opération terminée"
      Global styl$="Texte (*.txt)|*.txt|Autres (*.*)|*.*"
      Global Loadpng$="Charger une image .PNG"
      Global Clipb$="Copier le texte dans le presse papier"
      Global savtxt$="Enregistrer le texte dans un fichier .txt"
      Global clipbok$="Le texte a été copié dans le presse papier"
      Global nomfich$="Choisissez un nom pour votre fichier"
      Global fi$="Le fichier "
      Global aec$=" a été sauvegardé"
      Global update$="Mise à jour"
      Global questddl$=" est disponible, voulez-vous la télécharger maintenant ?"
      Global upsave$="La mise à jour à été sauvée dans "
      Global nonet$="Aucune connection internet n'est detectée"
      Global Error$="Erreur"
      Global ErrRep$="Désolé, un répertoire porte le même nom, choisissez un autre nom pour votre fichier."
    EndIf
    
    ;-}Fin langues
    
    Enumeration
      #WIN : #Image_0 : #TXT1 : #Frame3D : #BT1 : #BT2 : #AFFICHE : #Image_Image_0 : #Fichier : #Image
      #fenetre_editeur : #editeur : #BTsave : #BTcopy : #SplashWin : #SplashTxt : #Font_SplashTXT
      #WINlng : #CheckBox_UK : #CheckBox_FR : #OK : #BT_MAJ
      ;ajouts
    EndEnumeration
    
    NewList Liste.l()
    
    Procedure OpenWindow_SplashWin()
      If OpenWindow(#SplashWin, 0, 730, 292, 30, "", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
        If CreateGadgetList(WindowID(#SplashWin))
          TextGadget(#SplashTxt, 5, 5, 280, 20, wait$, #PB_Text_Center)
          SetGadgetFont(#SplashTxt, LoadFont(#Font_SplashTXT, "Microsoft Sans Serif", 12, 272))
        EndIf
      EndIf
    EndProcedure
    
    Procedure.l car_pixel(car1,car2,car3,car4)
      pixel=RGBA(car1,car2,car3,car4)
      ProcedureReturn pixel   
    EndProcedure
    
    Procedure.s pixel_4car(pixel)
      R=Red(pixel)
      g=Green(pixel)
      b=Blue(pixel)
      a=Alpha(pixel)
      Debug a
      car$=Chr(R)+Chr(g)+Chr(b)+Chr(a)
      ProcedureReturn car$
    EndProcedure
    
    Define.l Event, EventWindow, EventGadget, EventType, EventMenu
    ;}
    Procedure OpenWindow_WIN()
      If OpenWindow(#WIN, 330, 155, 640, 359, "ASCII2PIXEL by LDVMULTIMEDIA v"+V$, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
        If CreateGadgetList(WindowID(#WIN))
          TextGadget(#TXT1, 120, 335, 415, 20,Sign$)
          ButtonGadget(#BT1, 20, 195, 300, 45, cv1$, #BS_FLAT)
          ButtonGadget(#BT2, 20, 250, 600, 45, cv2$, #BS_FLAT)
          StringGadget(#AFFICHE, 20, 305, 540, 20, convert$, #ES_CENTER|#PB_String_BorderLess|#PB_String_ReadOnly)
        EndIf
      EndIf
    EndProcedure
    
    OpenWindow_WIN()
    
    ;{- Event loop
    Repeat
      Event = WaitWindowEvent()
      Select Event
        Case #PB_Event_Gadget
          EventGadget = EventGadget()
          EventType = EventType()
          Select EventGadget
              ;-TXT en IMAGE - Lecture du fichier txt
            Case #BT1
              filtre$=filtre1$
              filtre=0
              NomFichier$ = OpenFileRequester(loadtxt$,"",filtre$, 0)
              nbc=0
              ClearList(Liste()) 
              Position=0
              If OpenFile(#Fichier, NomFichier$) 
                While Eof(#Fichier)=0 
                  car1.c=0
                  car2.c=0
                  car3.c=0
                  car4.c=0
                  If ReadData(#Fichier,@car1,1)
                    nbc+1
                    If ReadData(#Fichier,@car2,1)
                      nbc+1
                      If ReadData(#Fichier,@car3,1)
                        nbc+1
                        If ReadData(#Fichier,@car4,1)
                          nbc+1
                        EndIf  
                      EndIf
                    EndIf
                  EndIf 
                  nbp=nbp+1
                  pixel= car_pixel(car1,car2,car3,car4)
                  AddElement(Liste())
                  Liste()=pixel
                  ;-VERIFICATION DE LA CONVERSION DANS LE DEBUG
                  Debug "R:"+Str(car1)+" "+"G:"+Str(car2)+" "+"B:"+Str(car3)+" "+"A:"+Str(car4)
                  Debug "Trad : "+Chr(car1)+Chr(car2)+Chr(car3)+Chr(car4)
                Wend
                Debug "Il y a "+Str(nbc)+" caracteres"
                CloseFile(#Fichier)
                
                ;-{   1ere tentative de gestion de la taille des images.
                ; MessageRequester("test",Str(nbc)) : End ; test
                If nbc<22500
                  Xpic=150 : Ypic = 50
                  ; ElseIf nbc=22500 Or nbc<48000
                  ; Xpic=320 : Ypic=50
                ElseIf nbc=22500 Or nbc<144000
                  Xpic=320 : Ypic = 150
                ElseIf nbc=144000  Or nbc<384000
                  Xpic=640 : Ypic = 400
                ElseIf nbc=384000  Or nbc<1440000
                  Xpic=800 : Ypic = 600
                ElseIf nbc=1440000  Or nbc<2359296
                  Xpic=1024 : Ypic = 768
                ElseIf nbc=2359296  Or nbc<3932160
                  Xpic=1280 : Ypic = 1024
                ElseIf nbc>3932159
                  MessageRequester("Alert",alert$)
                  Break
                EndIf
                ;-FinModif
                
                ;-TXT en IMAGE 
                CreateImage(#Image,Xpic,Ypic,32)
                StartDrawing(ImageOutput(#Image))
                  ResetList(Liste())
                  
                  For Y=1 To Ypic-1
                    For x=1 To Xpic-1
                      
                      NextElement(Liste())
                      pixel=Liste()
                      
                      DrawingMode(#PB_2DDrawing_Default)
                      Plot(x,Y,pixel)
                      DrawingMode(#PB_2DDrawing_AlphaChannel)
                      Plot(x,Y,pixel)
                      
                      compteur=compteur+1
                      If compteur=nbp
                        compteur=0
                        Break 2
                      EndIf                               
                    Next x   
                  Next Y   
                StopDrawing()   
                ;- Sauvegarde
                Delay(500)
                SetGadgetText(#AFFICHE,wait$)
                filtre$=png$
                filtre=0
                NomFichier$ = SaveFileRequester(savpng$, "", filtre$, 0)
                ext$=LCase(GetExtensionPart(NomFichier$))
                If ext$<>"png" : NomFichier$=NomFichier$+".png" : EndIf
                
                If NomFichier$
                  OpenWindow_SplashWin() 
                  Resultat = SaveImage(#Image, NomFichier$ , #PB_ImagePlugin_PNG) 
                  SetGadgetText(#AFFICHE,over$)
                  CloseWindow(#SplashWin)
                Else
                  SetGadgetText(#AFFICHE,Cancel$) ;-annul
                EndIf
              Else
                SetGadgetText(#AFFICHE,Cancel$)
              EndIf
              
              ;-IMAGE en TXT
            Case #BT2
              filtre$=filtre2$
              filtre=0
              NomFichier$ = OpenFileRequester(Loadpng$, "", filtre$, 0)
              Texte$="":car_4$="":pixel=0:compteur=0
              Resultat = LoadImage(#Image, NomFichier$,32)
              If OpenFile(#Fichier, NomFichier$)
                OpenWindow_SplashWin()
                
                StartDrawing(ImageOutput(#Image))
                  For Y=1 To ImageHeight(#Image)-1
                    For x=1 To  ImageWidth(#Image)-1
                      pixel=Point(x,Y)
                      If pixel>0 
                        DrawingMode(#PB_2DDrawing_Default)
                        car_4$ = Chr(Red(pixel)) + Chr(Green(pixel)) + Chr(Blue(pixel))
                        Debug "sans Alpha : "+car_4$
                        DrawingMode(#PB_2DDrawing_AlphaChannel)
                        car_4$ + Chr(Alpha(pixel))
                        Debug "avec Alpha : "+car_4$
                      EndIf
                      If pixel=0 Or car_4$=Chr(Red(0)) + Chr(Green(0)) + Chr(Blue(0)) + Chr(Alpha(255))
                        Break 2
                      EndIf
                      Texte$+car_4$
                    Next x     
                  Next Y
                StopDrawing()
                FreeImage(#Image)
                
                ;-editeur
                If OpenWindow(#fenetre_editeur,330, 155, 640, 660,"Result")
                  CloseWindow(#SplashWin)
                  If CreateGadgetList(WindowID(#fenetre_editeur))
                    EditorGadget(#editeur,5, 5, 630, 550 )
                    ButtonGadget(#BTcopy, 5, 560, 630, 45, Clipb$, #BS_FLAT)
                    ButtonGadget(#BTsave, 5, 610, 630, 45, savtxt$, #BS_FLAT)
                    SendMessage_(GadgetID(#editeur), #EM_SETTARGETDEVICE, #Null, 0)
                    
                    ;-Suppression du CHR(255)
                    Texte$=RemoveString(Texte$,Chr(255)) ;
                    ;--------
                    
                    SetGadgetText(#editeur, Texte$)
                    PureCOLOR_SetWindowColor(#fenetre_editeur, $979797)
                  EndIf
                EndIf
                Repeat
                  Event2 = WaitWindowEvent()	
                  Select Event2	
                    Case #PB_Event_Gadget
                      EventGadget = EventGadget()
                      Select EventGadget
                        Case #BTcopy 
                          Texte$=GetGadgetText(#editeur) 
                          SetClipboardText(Texte$)
                          MessageRequester("OK",clipbok$)    
                        Case #BTsave
                          Texte$=GetGadgetText(#editeur) 
                          Defaut$ = Path$
                          filtre$ = styl$
                          filtre = 0  
                          FichierSave$ = SaveFileRequester(nomfich$, Defaut$, filtre$, filtre)
                          ext$=LCase(GetExtensionPart(FichierSave$))
                          If FichierSave$
                            If ext$<>"txt" : FichierSave$=FichierSave$+".txt" : EndIf
                            If CreateFile(1, FichierSave$)
                              WriteString(1, Texte$,#PB_Ascii)    
                              CloseFile(1) 
                              MessageRequester("Info",fi$+FichierSave$+aec$)
                            Else
                              MessageRequester (Error$,Error$)
                            EndIf
                          Else
                            SetGadgetText(#AFFICHE,Cancel$)
                          EndIf
                      EndSelect 
                    Case #PB_Event_CloseWindow
                      CloseWindow(#fenetre_editeur)	
                      HideWindow(#WIN, 0)
                      SetGadgetText(#AFFICHE,over$)
                  EndSelect
                Until  Event2=#PB_Event_CloseWindow
              Else
              EndIf
              
          EndSelect
        Case #PB_Event_CloseWindow
          EventWindow = EventWindow()
          Select EventWindow
            Case #WIN
              CloseWindow(#WIN)
              Break
          EndSelect
      EndSelect
    ForEver
J'ai aussi supprimé le chr(255) mais le dernier car se repète maintenant..
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par kernadec »

bonsoir
voila j'ai ajouté un -1 en début de liste et un 0,0,0,255 en fin de liste
peut être un début de solution, pas fait tous les tests

Cordialement

Code : Tout sélectionner

	filtre$=filtre1$
							filtre=0
							NomFichier$ = OpenFileRequester(loadtxt$,"",filtre$, 0)
							nbc=0
							ClearList(Liste())
							Position=0
							AddElement(Liste())
						  Liste()=-1
						  If OpenFile(#Fichier, NomFichier$) 
								While Eof(#Fichier)=0 
									car1.c=0
									car2.c=0
									car3.c=0
									car4.c=0
									If ReadData(#Fichier,@car1,1)
										nbc+1
										If ReadData(#Fichier,@car2,1)
											nbc+1
											If ReadData(#Fichier,@car3,1)
												nbc+1
												If ReadData(#Fichier,@car4,1)
													nbc+1
												EndIf  
											EndIf
										EndIf
									EndIf 
									nbp=nbp+1
									pixel= car_pixel(car1,car2,car3,car4)
									AddElement(Liste())
									Liste()=pixel
									;-VERIFICATION DE LA CONVERSION DANS LE Debug
								;	Debug "R:"+Str(car1)+" "+"G:"+Str(car2)+" "+"B:"+Str(car3)+" "+"A:"+Str(car4)
								;	Debug "Trad : "+Chr(car1)+Chr(car2)+Chr(car3)+Chr(car4)
								Wend
								AddElement(Liste())
									Liste()=RGBA(0,0,0,255)
									nbp=nbp+1
								Debug "Il y a "+Str(nbc)+" caracteres"
								CloseFile(#Fichier)
								;-{   1ere tentative de gestion de la taille des images.

Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par kernadec »

bonjour AR-S
la nuit porte conseil comme toujours
pour la dernière série de Caractères ca va être difficile de l'enlever
car la fin de l'image vide renvoie les codes de cet espace.

il faudrait sauver la taille du fichier en octet avec un "lof" en début du codage image
dans une séquence, Pour ensuite récupérer cette infos et sortir à cette limite lors du décodage.

Cordialement
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par Ar-S »

Merci kernadec,
Ton code plus haut n'a pas changé grand chose à ma 1ere info alpha. J'ai essayé différents trucs jusqu'à tard dans la nuit, sans succès. :(
Pour ce qui est des car de fin, je verrai ça après. ça marchait bien dans ma 1ere version il faudra que je re-compare.

J'ai ajouté des debug de partout. Je ne comprends pas que les données de liste() ne correspondent pas aux données RGBA()

Code : Tout sélectionner

    ; ASCII2PIC by LDVMULTIMEDIA
    ; Routines de conversion réalisées par Dobro & LNA
    ;P.B 4.10 puis PB 4.20 beta 5 puis 4.20 / de  14/04/2008 au 10/05/2008
    ;PB 4.41 du 23/03/2010 au..
    
    Declare.s pixel_4car(pixel)
    Declare.l car_pixel(car1,car2,car3,car4)
    
    UsePNGImageEncoder()
    UsePNGImageDecoder()
    UseJPEGImageDecoder()
    
    Global V$="2.0 beta2"
    Global Path$=GetCurrentDirectory()
    Global sites$=Chr(10)+"LDV MULTIMEDIA : http://ldvmultimedia.com"+Chr(10)+Chr(10)+Space(15)+"Grand merci à Dobro & LNA"+Chr(10)+" Site de Dobro : http://michel.dobro.free.fr"
    
    lng$="Français"
    If lng$="Français"
      Global Cancel$="Annulé"
      Global errorfile$="Le fichier est introuvable"
      Global nofile$="Le fichier est indisponible pour Le moment, veuillez ré-essayer dans quelques minutes"
      Global ddl$="Téléchargement..."
      Global dejaup$="Vous avez déjà la dernière Version"
      Global QuoideNeuf$=Chr(10)+" "+V$+" - Quoi de neuf ?"+Chr(10)+"> Correctif mineur - Message clignotant pour l'info de mise à jour"+Chr(10)+"> Correction d'un bug majeur de décalage de texte"+Chr(10)+"> Recodage de la gestion des langues pour une compatibilité avec les OS non français ou anglais"+Chr(10)+"> Bug mineur corrigé"+Chr(10)+"> Format BMP supporté"+Chr(10)+"> Mise à jour automatique"+Chr(10)+"> Bug d'affichage de texte long corrigé"+Chr(10)+"> Vérification des extensions"+Chr(10)+"> Copie du texte dans le presse papier"+Chr(10)+"> Copie du texte dans un fichier .txt"
      Global Sign$="2008 / LDV MULTIMEDIA - Ce logiciel est gratuit - http://ldvmultimedia.com"
      Global f3d$="Convertissez un texte en image et vice et versa"
      Global cv1$="Convertir du Texte en image"
      Global cv2$="Convertir une image en Texte"
      Global convert$="Effectuer une conversion"
      Global filtre1$="Ficher Texte|*.txt;*.TXT;*.pb;*.php;*.html;*.htm;*.js;*.ini"
      Global filtre2$="Ficher image (*.png)|*.png;*.PNG"
      Global loadtxt$="Charger un fichier Texte"
      Global alert$="Nombre de caractères trop important !"
      Global wait$="Patientez S.V.P"
      Global png$="Ficher PNG|*.png;*.PNG"
      Global savpng$="Sauver l'image PNG"
      Global about$=Space(8)+"Ce logiciel a été créé par LDVMULTIMEDIA"+Chr(10)+Space(25)+"Codé par Ar-S et Dobro"+Chr(10)+Space(27)+"Ce logiciel est gratuit"+Chr(10)+sites$
      Global over$="Opération terminée"
      Global styl$="Texte (*.txt)|*.txt|Autres (*.*)|*.*"
      Global Loadpng$="Charger une image .PNG"
      Global Clipb$="Copier le texte dans le presse papier"
      Global savtxt$="Enregistrer le texte dans un fichier .txt"
      Global clipbok$="Le texte a été copié dans le presse papier"
      Global nomfich$="Choisissez un nom pour votre fichier"
      Global fi$="Le fichier "
      Global aec$=" a été sauvegardé"
      Global update$="Mise à jour"
      Global questddl$=" est disponible, voulez-vous la télécharger maintenant ?"
      Global upsave$="La mise à jour à été sauvée dans "
      Global nonet$="Aucune connection internet n'est detectée"
      Global Error$="Erreur"
      Global ErrRep$="Désolé, un répertoire porte le même nom, choisissez un autre nom pour votre fichier."
    EndIf
    
    ;-}Fin langues
    
    Enumeration
      #WIN : #Image_0 : #TXT1 : #Frame3D : #BT1 : #BT2 : #AFFICHE : #Image_Image_0 : #Fichier : #Image
      #fenetre_editeur : #editeur : #BTsave : #BTcopy : #SplashWin : #SplashTxt : #Font_SplashTXT
      #WINlng : #CheckBox_UK : #CheckBox_FR : #OK : #BT_MAJ
      ;ajouts
    EndEnumeration
    
    NewList Liste.l()
    
    Procedure OpenWindow_SplashWin()
      If OpenWindow(#SplashWin, 0, 730, 292, 30, "", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
        If CreateGadgetList(WindowID(#SplashWin))
          TextGadget(#SplashTxt, 5, 5, 280, 20, wait$, #PB_Text_Center)
          SetGadgetFont(#SplashTxt, LoadFont(#Font_SplashTXT, "Microsoft Sans Serif", 12, 272))
        EndIf
      EndIf
    EndProcedure
    
    Procedure.l car_pixel(car1,car2,car3,car4)
      pixel=RGBA(car1,car2,car3,car4)
      ProcedureReturn pixel   
    EndProcedure
    
    Procedure.s pixel_4car(pixel)
      R=Red(pixel)
      g=Green(pixel)
      b=Blue(pixel)
      a=Alpha(pixel)
      Debug a
      car$=Chr(R)+Chr(g)+Chr(b)+Chr(a)
      ProcedureReturn car$
    EndProcedure
    
    Define.l Event, EventWindow, EventGadget, EventType, EventMenu
    ;}
    Procedure OpenWindow_WIN()
      If OpenWindow(#WIN, 330, 155, 640, 359, "ASCII2PIXEL by LDVMULTIMEDIA v"+V$, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
        If CreateGadgetList(WindowID(#WIN))
          TextGadget(#TXT1, 120, 335, 415, 20,Sign$)
          ButtonGadget(#BT1, 20, 195, 300, 45, cv1$, #BS_FLAT)
          ButtonGadget(#BT2, 20, 250, 600, 45, cv2$, #BS_FLAT)
          StringGadget(#AFFICHE, 20, 305, 540, 20, convert$, #ES_CENTER|#PB_String_BorderLess|#PB_String_ReadOnly)
        EndIf
      EndIf
    EndProcedure
    
    OpenWindow_WIN()
    
    ;{- Event loop
    Repeat
      Event = WaitWindowEvent()
      Select Event
        Case #PB_Event_Gadget
          EventGadget = EventGadget()
          EventType = EventType()
          Select EventGadget
              ;-TXT en IMAGE - Lecture du fichier txt
            Case #BT1
              filtre$=filtre1$
              filtre=0
              NomFichier$ = OpenFileRequester(loadtxt$,"",filtre$, 0)
              nbc=0
              nbp=1
              ClearList(Liste()) 
              Position=0
              ;-----ajout----
              ;AddElement(Liste())
              ;Liste()=0
              ;-----------------
              If OpenFile(#Fichier, NomFichier$) 
                While Eof(#Fichier)=0 
                  car1.c=0
                  car2.c=0
                  car3.c=0
                  car4.c=0
                  If ReadData(#Fichier,@car1,1)
                    nbc+1
                    Debug "car1 : "+Str(car1)
                    If ReadData(#Fichier,@car2,1)
                      nbc+1
                      Debug "car2 : "+Str(car2)
                      If ReadData(#Fichier,@car3,1)
                        nbc+1
                        Debug "car3 : "+Str(car3)
                        If ReadData(#Fichier,@car4,1)
                          nbc+1
                          Debug "car4 : "+Str(car4)
                        EndIf  
                      EndIf
                    EndIf
                  EndIf 
                  ;pixel= car_pixel(car1,car2,car3,car4)
                  
                  AddElement(Liste())
                  ;Liste()=car_pixel(car1,car2,car3,car4) ;pixel
                  Liste()=RGBA(car1,car2,car3,car4) 

                  nbp+1
                  ;-VERIFICATION DE LA CONVERSION DANS LE DEBUG
                  Debug "R:"+Str(car1)+" "+"G:"+Str(car2)+" "+"B:"+Str(car3)+" "+"A:"+Str(car4)
                  Debug "Trad : "+Chr(car1)+Chr(car2)+Chr(car3)+Chr(car4)
                  Debug "Liste : "+Str(Liste())
                  Debug "On passe au Pixel numéro  : "+Str(nbp)
                Wend
                
                ;----ajout---
                AddElement(Liste())
                Liste()=RGBA(0,0,0,255)
                nbp=nbp+1
                ;------------
                Debug "Il y a "+Str(nbc)+" caracteres"
                CloseFile(#Fichier)
                
                ;-{   1ere tentative de gestion de la taille des images.
                ; MessageRequester("test",Str(nbc)) : End ; test
                If nbc<22500
                  Xpic=150 : Ypic = 50
                  ; ElseIf nbc=22500 Or nbc<48000
                  ; Xpic=320 : Ypic=50
                ElseIf nbc=22500 Or nbc<144000
                  Xpic=320 : Ypic = 150
                ElseIf nbc=144000  Or nbc<384000
                  Xpic=640 : Ypic = 400
                ElseIf nbc=384000  Or nbc<1440000
                  Xpic=800 : Ypic = 600
                ElseIf nbc=1440000  Or nbc<2359296
                  Xpic=1024 : Ypic = 768
                ElseIf nbc=2359296  Or nbc<3932160
                  Xpic=1280 : Ypic = 1024
                ElseIf nbc>3932159
                  MessageRequester("Alert",alert$)
                  Break
                EndIf
                ;-FinModif
                
                ;-TXT en IMAGE 
                CreateImage(#Image,Xpic,Ypic,32)
                StartDrawing(ImageOutput(#Image))
                  ;ResetList(Liste())
                  FirstElement(Liste())
                  PosListe=0
                  For Y=1 To Ypic-1
                    For x=1 To Xpic-1
                      PosListe+1
                      pixel=Liste()
                      
                      DrawingMode(#PB_2DDrawing_Default)
                      Plot(x,Y,pixel)
                      DrawingMode(#PB_2DDrawing_AlphaChannel)
                      Plot(x,Y,pixel)
                      Debug "Liste () "+Str(PosListe)+" : "+Str(Liste())
                      NextElement(Liste())
                      compteur=compteur+1
                      If compteur=nbp
                        compteur=0
                        Break 2
                      EndIf                               
                    Next x   
                  Next Y   
                  
                StopDrawing()   
                ;- Sauvegarde
                Delay(500)
                SetGadgetText(#AFFICHE,wait$)
                filtre$=png$
                filtre=0
                NomFichier$ = SaveFileRequester(savpng$, "", filtre$, 0)
                
                If NomFichier$
                  ext$=LCase(GetExtensionPart(NomFichier$))
                  If ext$<>"png" : NomFichier$=NomFichier$+".png" : EndIf
                  
                  OpenWindow_SplashWin() 
                  Resultat = SaveImage(#Image, NomFichier$ , #PB_ImagePlugin_PNG) 
                  SetGadgetText(#AFFICHE,over$)
                  CloseWindow(#SplashWin)
                Else
                  SetGadgetText(#AFFICHE,Cancel$) ;-annul
                EndIf
              Else
                SetGadgetText(#AFFICHE,Cancel$)
              EndIf
              
              ;-IMAGE en TXT
            Case #BT2
              filtre$=filtre2$
              filtre=0
              NomFichier$ = OpenFileRequester(Loadpng$, "", filtre$, 0)
              Texte$="":car_4$="":pixel=0:compteur=0
              Resultat = LoadImage(#Image, NomFichier$,32)
              If OpenFile(#Fichier, NomFichier$)
                OpenWindow_SplashWin()
                
                StartDrawing(ImageOutput(#Image))
                  For Y=1 To ImageHeight(#Image)-1
                    For x=1 To  ImageWidth(#Image)-1
                      pixel=Point(x,Y)
                      If pixel>0 
                        DrawingMode(#PB_2DDrawing_Default)
                        car_4$ = Chr(Red(pixel)) + Chr(Green(pixel)) + Chr(Blue(pixel))
                        Debug "sans Alpha : "+car_4$
                        DrawingMode(#PB_2DDrawing_AlphaChannel)
                        car_4$ + Chr(Alpha(pixel))
                        Debug "avec Alpha : "+car_4$
                      EndIf
                      If pixel=0 Or car_4$=Chr(Red(0)) + Chr(Green(0)) + Chr(Blue(0)) + Chr(Alpha(255))
                        Break 2
                      EndIf
                      Texte$+car_4$
                    Next x     
                  Next Y
                StopDrawing()
                FreeImage(#Image)
                
                ;-editeur
                If OpenWindow(#fenetre_editeur,330, 155, 640, 660,"Result")
                  CloseWindow(#SplashWin)
                  If CreateGadgetList(WindowID(#fenetre_editeur))
                    EditorGadget(#editeur,5, 5, 630, 550 )
                    ButtonGadget(#BTcopy, 5, 560, 630, 45, Clipb$, #BS_FLAT)
                    ButtonGadget(#BTsave, 5, 610, 630, 45, savtxt$, #BS_FLAT)
                    SendMessage_(GadgetID(#editeur), #EM_SETTARGETDEVICE, #Null, 0)
                    
                    ;-Suppression du CHR(255)
                    ;Texte$=RemoveString(Texte$,Chr(255)) ;
                    ;--------
                    
                    SetGadgetText(#editeur, Texte$)
                    PureCOLOR_SetWindowColor(#fenetre_editeur, $979797)
                  EndIf
                EndIf
                Repeat
                  Event2 = WaitWindowEvent()	
                  Select Event2	
                    Case #PB_Event_Gadget
                      EventGadget = EventGadget()
                      Select EventGadget
                        Case #BTcopy 
                          Texte$=GetGadgetText(#editeur) 
                          SetClipboardText(Texte$)
                          MessageRequester("OK",clipbok$)    
                        Case #BTsave
                          Texte$=GetGadgetText(#editeur) 
                          Defaut$ = Path$
                          filtre$ = styl$
                          filtre = 0  
                          FichierSave$ = SaveFileRequester(nomfich$, Defaut$, filtre$, filtre)
                          ext$=LCase(GetExtensionPart(FichierSave$))
                          If FichierSave$
                            If ext$<>"txt" : FichierSave$=FichierSave$+".txt" : EndIf
                            If CreateFile(1, FichierSave$)
                              WriteString(1, Texte$,#PB_Ascii)    
                              CloseFile(1) 
                              MessageRequester("Info",fi$+FichierSave$+aec$)
                            Else
                              MessageRequester (Error$,Error$)
                            EndIf
                          Else
                            SetGadgetText(#AFFICHE,Cancel$)
                          EndIf
                      EndSelect 
                    Case #PB_Event_CloseWindow
                      CloseWindow(#fenetre_editeur)	
                      HideWindow(#WIN, 0)
                      SetGadgetText(#AFFICHE,over$)
                  EndSelect
                Until  Event2=#PB_Event_CloseWindow
              Else
              EndIf
              
          EndSelect
        Case #PB_Event_CloseWindow
          EventWindow = EventWindow()
          Select EventWindow
            Case #WIN
              CloseWindow(#WIN)
              Break
          EndSelect
      EndSelect
    ForEver
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par kernadec »

bonjour AR-S
je comprend pas ? cela fonctionne sur mes bécanes
avec le code que tu viens de mettre c'est vrai ca ne marche plus...
je t'envoie le code avec lequel le premier caractère est correct
avec ton texte de verlaine et plusieurs autres..


Cordialement

Code : Tout sélectionner

		; ASCII2PIC by LDVMULTIMEDIA
		; Routines de conversion réalisées par Dobro & LNA
		;P.B 4.10 puis PB 4.20 beta 5 puis 4.20 / de  14/04/2008 au 10/05/2008
		;PB 4.41 du 23/03/2010 au..
		
		Declare.s pixel_4car(pixel)
		Declare.l car_pixel(car1,car2,car3,car4)
		
		UsePNGImageEncoder()
		UsePNGImageDecoder()
		UseJPEGImageDecoder()
		
		Global V$="2.0 beta2"
		Global Path$=GetCurrentDirectory()
		Global sites$=Chr(10)+"LDV MULTIMEDIA : http://ldvmultimedia.com"+Chr(10)+Chr(10)+Space(15)+"Grand merci à Dobro & LNA"+Chr(10)+" Site de Dobro : http://michel.dobro.free.fr"
		
		lng$="Français"
		If lng$="Français"
			Global Cancel$="Annulé"
			Global errorfile$="Le fichier est introuvable"
			Global nofile$="Le fichier est indisponible pour Le moment, veuillez ré-essayer dans quelques minutes"
			Global ddl$="Téléchargement..."
			Global dejaup$="Vous avez déjà la dernière Version"
			Global QuoideNeuf$=Chr(10)+" "+V$+" - Quoi de neuf ?"+Chr(10)+"> Correctif mineur - Message clignotant pour l'info de mise à jour"+Chr(10)+"> Correction d'un bug majeur de décalage de texte"+Chr(10)+"> Recodage de la gestion des langues pour une compatibilité avec les OS non français ou anglais"+Chr(10)+"> Bug mineur corrigé"+Chr(10)+"> Format BMP supporté"+Chr(10)+"> Mise à jour automatique"+Chr(10)+"> Bug d'affichage de texte long corrigé"+Chr(10)+"> Vérification des extensions"+Chr(10)+"> Copie du texte dans le presse papier"+Chr(10)+"> Copie du texte dans un fichier .txt"
			Global Sign$="2008 / LDV MULTIMEDIA - Ce logiciel est gratuit - http://ldvmultimedia.com"
			Global f3d$="Convertissez un texte en image et vice et versa"
			Global cv1$="Convertir du Texte en image"
			Global cv2$="Convertir une image en Texte"
			Global convert$="Effectuer une conversion"
			Global filtre1$="Ficher Texte|*.txt;*.TXT;*.pb;*.php;*.html;*.htm;*.js;*.ini"
			Global filtre2$="Ficher image (*.png)|*.png;*.PNG"
			Global loadtxt$="Charger un fichier Texte"
			Global alert$="Nombre de caractères trop important !"
			Global wait$="Patientez S.V.P"
			Global png$="Ficher PNG|*.png;*.PNG"
			Global savpng$="Sauver l'image PNG"
			Global about$=Space(8)+"Ce logiciel a été créé par LDVMULTIMEDIA"+Chr(10)+Space(25)+"Codé par Ar-S et Dobro"+Chr(10)+Space(27)+"Ce logiciel est gratuit"+Chr(10)+sites$
			Global over$="Opération terminée"
			Global styl$="Texte (*.txt)|*.txt|Autres (*.*)|*.*"
			Global Loadpng$="Charger une image .PNG"
			Global Clipb$="Copier le texte dans le presse papier"
			Global savtxt$="Enregistrer le texte dans un fichier .txt"
			Global clipbok$="Le texte a été copié dans le presse papier"
			Global nomfich$="Choisissez un nom pour votre fichier"
			Global fi$="Le fichier "
			Global aec$=" a été sauvegardé"
			Global update$="Mise à jour"
			Global questddl$=" est disponible, voulez-vous la télécharger maintenant ?"
			Global upsave$="La mise à jour à été sauvée dans "
			Global nonet$="Aucune connection internet n'est detectée"
			Global Error$="Erreur"
			Global ErrRep$="Désolé, un répertoire porte le même nom, choisissez un autre nom pour votre fichier."
		EndIf
		
		;-}Fin langues
		
		Enumeration
			#WIN : #Image_0 : #TXT1 : #Frame3D : #BT1 : #BT2 : #AFFICHE : #Image_Image_0 : #Fichier : #Image
			#fenetre_editeur : #editeur : #BTsave : #BTcopy : #SplashWin : #SplashTxt : #Font_SplashTXT
			#WINlng : #CheckBox_UK : #CheckBox_FR : #OK : #BT_MAJ
			;ajouts
		EndEnumeration
		
		NewList Liste.l()
		
		Procedure OpenWindow_SplashWin()
			If OpenWindow(#SplashWin, 0, 730, 292, 30, "", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
				If CreateGadgetList(WindowID(#SplashWin))
					TextGadget(#SplashTxt, 5, 5, 280, 20, wait$, #PB_Text_Center)
					SetGadgetFont(#SplashTxt, LoadFont(#Font_SplashTXT, "Microsoft Sans Serif", 12, 272))
				EndIf
			EndIf
		EndProcedure
		
		Procedure.l car_pixel(car1,car2,car3,car4)
			pixel=RGBA(car1,car2,car3,car4)
			ProcedureReturn pixel   
		EndProcedure
		
		Procedure.s pixel_4car(pixel)
			R=Red(pixel)
			g=Green(pixel)
			b=Blue(pixel)
			a=Alpha(pixel)
			car$=Chr(R)+Chr(g)+Chr(b)+Chr(a)
			ProcedureReturn car$
		EndProcedure
		
		Define.l Event, EventWindow, EventGadget, EventType, EventMenu
		;}
		Procedure OpenWindow_WIN()
			If OpenWindow(#WIN, 330, 155, 640, 359, "ASCII2PIXEL by LDVMULTIMEDIA v"+V$, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
				If CreateGadgetList(WindowID(#WIN))
					TextGadget(#TXT1, 120, 335, 415, 20,Sign$)
					ButtonGadget(#BT1, 20, 195, 300, 45, cv1$, #BS_FLAT)
					ButtonGadget(#BT2, 20, 250, 600, 45, cv2$, #BS_FLAT)
					StringGadget(#AFFICHE, 20, 305, 540, 20, convert$, #ES_CENTER|#PB_String_BorderLess|#PB_String_ReadOnly)
				EndIf
			EndIf
		EndProcedure
		
		OpenWindow_WIN()
		
		;{- Event loop
		Repeat
			Event = WaitWindowEvent()
			Select Event
				Case #PB_Event_Gadget
					EventGadget = EventGadget()
					EventType = EventType()
					Select EventGadget
							;-TXT en IMAGE - Lecture du fichier txt
						Case #BT1
							filtre$=filtre1$
							filtre=0
							NomFichier$ = OpenFileRequester(loadtxt$,"",filtre$, 0)
							nbc=0
							ClearList(Liste())
							Position=0
							AddElement(Liste())
						  Liste()=-1
						  If OpenFile(#Fichier, NomFichier$) 
								While Eof(#Fichier)=0 
									car1.c=0
									car2.c=0
									car3.c=0
									car4.c=0
									If ReadData(#Fichier,@car1,1)
										nbc+1
										If ReadData(#Fichier,@car2,1)
											nbc+1
											If ReadData(#Fichier,@car3,1)
												nbc+1
												If ReadData(#Fichier,@car4,1)
													nbc+1
												EndIf  
											EndIf
										EndIf
									EndIf 
									nbp=nbp+1
									pixel= car_pixel(car1,car2,car3,car4)
									AddElement(Liste())
									Liste()=pixel
									;-VERIFICATION DE LA CONVERSION DANS LE Debug
								;	Debug "R:"+Str(car1)+" "+"G:"+Str(car2)+" "+"B:"+Str(car3)+" "+"A:"+Str(car4)
								;	Debug "Trad : "+Chr(car1)+Chr(car2)+Chr(car3)+Chr(car4)
								Wend
							  	AddElement(Liste())
									Liste()=RGBA(0,0,0,255)
									nbp=nbp+1
								Debug "Il y a "+Str(nbc)+" caracteres"
								CloseFile(#Fichier)
								;-{   1ere tentative de gestion de la taille des images.
								; MessageRequester("test",Str(nbc)) : End ; test
								If nbc<22500
									Xpic=150 : Ypic = 50
									; ElseIf nbc=22500 Or nbc<48000
									; Xpic=320 : Ypic=50
								ElseIf nbc=22500 Or nbc<144000
									Xpic=320 : Ypic = 150
								ElseIf nbc=144000  Or nbc<384000
									Xpic=640 : Ypic = 400
								ElseIf nbc=384000  Or nbc<1440000
									Xpic=800 : Ypic = 600
								ElseIf nbc=1440000  Or nbc<2359296
									Xpic=1024 : Ypic = 768
								ElseIf nbc=2359296  Or nbc<3932160
									Xpic=1280 : Ypic = 1024
								ElseIf nbc>3932159
									MessageRequester("Alert",alert$)
									Break
								EndIf
								;-FinModif
								
								;-TXT en IMAGE 
								CreateImage(#Image,Xpic,Ypic,32)
								StartDrawing(ImageOutput(#Image))
									ResetList(Liste())
									
									For Y=1 To Ypic-1
										For x=1 To Xpic-1
											
											NextElement(Liste())
											pixel=Liste()
											
											DrawingMode(#PB_2DDrawing_Default)
											Plot(x,Y,pixel)
											DrawingMode(#PB_2DDrawing_AlphaChannel)
											Plot(x,Y,pixel)
											
											compteur=compteur+1
											If compteur=nbp
												compteur=0
												Break 2
											EndIf                               
										Next x   
									Next Y   
								StopDrawing()   
								;- Sauvegarde
								Delay(500)
								SetGadgetText(#AFFICHE,wait$)
								filtre$=png$
								filtre=0
								NomFichier$ = SaveFileRequester(savpng$, "", filtre$, 0)
								ext$=LCase(GetExtensionPart(NomFichier$))
								If ext$<>"png" : NomFichier$=NomFichier$+".png" : EndIf
								
								If NomFichier$
									OpenWindow_SplashWin() 
									Resultat = SaveImage(#Image, NomFichier$ , #PB_ImagePlugin_PNG) 
									SetGadgetText(#AFFICHE,over$)
									CloseWindow(#SplashWin)
								Else
									SetGadgetText(#AFFICHE,Cancel$) ;-annul
								EndIf
							Else
								SetGadgetText(#AFFICHE,Cancel$)
							EndIf
							
							;-IMAGE en TXT
						Case #BT2
							filtre$=filtre2$
							filtre=0
							NomFichier$ = OpenFileRequester(Loadpng$, "", filtre$, 0)
							Texte$="":car_4$="":pixel=0:compteur=0
							Resultat = LoadImage(#Image, NomFichier$,32)
							If OpenFile(#Fichier, NomFichier$)
								OpenWindow_SplashWin()
								
								StartDrawing(ImageOutput(#Image))
									For Y=1 To ImageHeight(#Image)-1
										For x=1 To  ImageWidth(#Image)-1
											pixel=Point(x,Y)
											If pixel>0 
												DrawingMode(#PB_2DDrawing_Default)
												car_4$ = Chr(Red(pixel)) + Chr(Green(pixel)) + Chr(Blue(pixel))
												;Debug "sans Alpha : "+car_4$
												DrawingMode(#PB_2DDrawing_AlphaChannel)
												car_4$ + Chr(Alpha(pixel))
												;Debug "avec Alpha : "+car_4$
											EndIf
											If pixel=0 Or car_4$=Chr(Red(0)) + Chr(Green(0)) + Chr(Blue(0)) + Chr(Alpha(255))
												Break 2
											EndIf
											Texte$+car_4$
										Next x     
									Next Y
								StopDrawing()
								FreeImage(#Image)
								
								;-editeur
								If OpenWindow(#fenetre_editeur,330, 155, 640, 660,"Result")
									CloseWindow(#SplashWin)
									If CreateGadgetList(WindowID(#fenetre_editeur))
										EditorGadget(#editeur,5, 5, 630, 550 )
										ButtonGadget(#BTcopy, 5, 560, 630, 45, Clipb$, #BS_FLAT)
										ButtonGadget(#BTsave, 5, 610, 630, 45, savtxt$, #BS_FLAT)
										SendMessage_(GadgetID(#editeur), #EM_SETTARGETDEVICE, #Null, 0)
										
										;-Suppression du CHR(255)
										Texte$=RemoveString(Texte$,Chr(255)) ;
										;--------
										
										SetGadgetText(#editeur, Texte$)
										;PureCOLOR_SetWindowColor(#fenetre_editeur, $979797)
									EndIf
								EndIf
								Repeat
									Event2 = WaitWindowEvent()   
									Select Event2   
										Case #PB_Event_Gadget
											EventGadget = EventGadget()
											Select EventGadget
												Case #BTcopy 
													Texte$=GetGadgetText(#editeur) 
													SetClipboardText(Texte$)
													MessageRequester("OK",clipbok$)    
												Case #BTsave
													Texte$=GetGadgetText(#editeur) 
													Defaut$ = Path$
													filtre$ = styl$
													filtre = 0  
													FichierSave$ = SaveFileRequester(nomfich$, Defaut$, filtre$, filtre)
													ext$=LCase(GetExtensionPart(FichierSave$))
													If FichierSave$
														If ext$<>"txt" : FichierSave$=FichierSave$+".txt" : EndIf
														If CreateFile(1, FichierSave$)
															WriteString(1, Texte$,#PB_Ascii)    
															CloseFile(1) 
															MessageRequester("Info",fi$+FichierSave$+aec$)
														Else
															MessageRequester (Error$,Error$)
														EndIf
													Else
														SetGadgetText(#AFFICHE,Cancel$)
													EndIf
											EndSelect 
										Case #PB_Event_CloseWindow
											CloseWindow(#fenetre_editeur)   
											HideWindow(#WIN, 0)
											SetGadgetText(#AFFICHE,over$)
									EndSelect
								Until  Event2=#PB_Event_CloseWindow
							Else
							EndIf
							
					EndSelect
				Case #PB_Event_CloseWindow
					EventWindow = EventWindow()
					Select EventWindow
						Case #WIN
							CloseWindow(#WIN)
							Break
					EndSelect
			EndSelect
		ForEver


Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par Ar-S »

Heu désolé mais le 4eme car n'est pas présent avec ton code
je vois Pau VERLAINE (1844-1896)
au lieu de
Paul VERLAINE (1844-1896)

Le "L" de paul est absent.
Donc la 1ere info Alpha
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par kernadec »

hihihihi là ya un problème
je ne comprend plus rien... le code que je viens de t'envoyer
je l'ai repomper depuis forum et testé sur mon portable et ma tour ,
tu va pas peut etre pas le croire mais ca fonctionne (paul verlaine) est complet!
sur la tour j'utilise xp sp2 et le portable xp sp1 et PB441

Cordialement
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par Ar-S »

Héhé après un nouveau test, ça marche effectivement pour le 1er car :wink:
J'ai du me tromper dans entre mes différentes version ouvertes du soft.

Faut que je remette ça dans l'ordre. :mrgreen:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par kernadec »

bonsoir AR-S
voila, une version qui rend un texte propre, mais ce n'est peut être pas
ce que tu souhaitais, mais pour le fun....

mis à jour le 26 03 avec 16 chiffres pour la taille, hihihihihi.

Cordialement

Code : Tout sélectionner

; ASCII2PIC by LDVMULTIMEDIA
; Routines de conversion réalisées par Dobro & LNA
;P.B 4.10 puis PB 4.20 beta 5 puis 4.20 / de  14/04/2008 au 10/05/2008
;PB 4.41 du 23/03/2010 au..
            
Declare.s pixel_4car(pixel)
Declare.l car_pixel(car1,car2,car3,car4)
            
UsePNGImageEncoder()
UsePNGImageDecoder()
UseJPEGImageDecoder()
            
Global V$="2.0 beta2"
Global Path$=GetCurrentDirectory()
Global sites$=Chr(10)+"LDV MULTIMEDIA : http://ldvmultimedia.com"+Chr(10)+Chr(10)+Space(15)+"Grand merci à Dobro & LNA"+Chr(10)+" Site de Dobro : http://michel.dobro.free.fr"
Global pixel.l         
lng$="Français"
If lng$="Français"
Global Cancel$="Annulé"
Global errorfile$="Le fichier est introuvable"
Global nofile$="Le fichier est indisponible pour Le moment, veuillez ré-essayer dans quelques minutes"
Global ddl$="Téléchargement..."
Global dejaup$="Vous avez déjà la dernière Version"
Global QuoideNeuf$=Chr(10)+" "+V$+" - Quoi de neuf ?"+Chr(10)+"> Correctif mineur - Message clignotant pour l'info de mise à jour"+Chr(10)+"> Correction d'un bug majeur de décalage de texte"+Chr(10)+"> Recodage de la gestion des langues pour une compatibilité avec les OS non français ou anglais"+Chr(10)+"> Bug mineur corrigé"+Chr(10)+"> Format BMP supporté"+Chr(10)+"> Mise à jour automatique"+Chr(10)+"> Bug d'affichage de texte long corrigé"+Chr(10)+"> Vérification des extensions"+Chr(10)+"> Copie du texte dans le presse papier"+Chr(10)+"> Copie du texte dans un fichier .txt"
Global Sign$="2008 / LDV MULTIMEDIA - Ce logiciel est gratuit - http://ldvmultimedia.com"
Global f3d$="Convertissez un texte en image et vice et versa"
Global cv1$="Convertir du Texte en image"
Global cv2$="Convertir une image en Texte"
Global convert$="Effectuer une conversion"
Global filtre1$="Ficher Texte|*.txt;*.TXT;*.pb;*.php;*.html;*.htm;*.js;*.ini"
Global filtre2$="Ficher image (*.png)|*.png;*.PNG"
Global loadtxt$="Charger un fichier Texte"
Global alert$="Nombre de caractères trop important !"
Global wait$="Patientez S.V.P"
Global png$="Ficher PNG|*.png;*.PNG"
Global savpng$="Sauver l'image PNG"
Global about$=Space(8)+"Ce logiciel a été créé par LDVMULTIMEDIA"+Chr(10)+Space(25)+"Codé par Ar-S et Dobro"+Chr(10)+Space(27)+"Ce logiciel est gratuit"+Chr(10)+sites$
Global over$="Opération terminée"
Global styl$="Texte (*.txt)|*.txt|Autres (*.*)|*.*"
Global Loadpng$="Charger une image .PNG"
Global Clipb$="Copier le texte dans le presse papier"
Global savtxt$="Enregistrer le texte dans un fichier .txt"
Global clipbok$="Le texte a été copié dans le presse papier"
Global nomfich$="Choisissez un nom pour votre fichier"
Global fi$="Le fichier "
Global aec$=" a été sauvegardé"
Global update$="Mise à jour"
Global questddl$=" est disponible, voulez-vous la télécharger maintenant ?"
Global upsave$="La mise à jour à été sauvée dans "
Global nonet$="Aucune connection internet n'est detectée"
Global Error$="Erreur"
Global ErrRep$="Désolé, un répertoire porte le même nom, choisissez un autre nom pour votre fichier."
EndIf
            
;-}Fin langues
            
Enumeration
#WIN : #Image_0 : #TXT1 : #Frame3D : #BT1 : #BT2 : #AFFICHE : #Image_Image_0 : #Fichier : #Image
#fenetre_editeur : #editeur : #BTsave : #BTcopy : #SplashWin : #SplashTxt : #Font_SplashTXT
#WINlng : #CheckBox_UK : #CheckBox_FR : #OK : #BT_MAJ
;ajouts
EndEnumeration
            
NewList Liste.l()
            
Procedure OpenWindow_SplashWin()
If OpenWindow(#SplashWin, 0, 730, 292, 30, "", #PB_Window_BorderLess|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#SplashWin))
  TextGadget(#SplashTxt, 5, 5, 280, 20, wait$, #PB_Text_Center)
  SetGadgetFont(#SplashTxt, LoadFont(#Font_SplashTXT, "Microsoft Sans Serif", 12, 272))
EndIf
EndIf
EndProcedure
            
Procedure.l car_pixel(car1,car2,car3,car4)
   pixel=RGBA(car1,car2,car3,car4)
   ProcedureReturn pixel   
EndProcedure
            
Procedure.s pixel_4car(pixel)
   R=Red(pixel)
   g=Green(pixel)
   b=Blue(pixel)
   a=Alpha(pixel)
   car$=Chr(R)+Chr(g)+Chr(b)+Chr(a)
   Debug car$
   ProcedureReturn car$
EndProcedure
            
   Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_WIN()
   If OpenWindow(#WIN, 330, 155, 640, 359, "ASCII2PIXEL by LDVMULTIMEDIA v"+V$, #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
      If CreateGadgetList(WindowID(#WIN))
         TextGadget(#TXT1, 120, 335, 415, 20,Sign$)
         ButtonGadget(#BT1, 20, 195, 300, 45, cv1$, #BS_FLAT)
         ButtonGadget(#BT2, 20, 250, 600, 45, cv2$, #BS_FLAT)
         StringGadget(#AFFICHE, 20, 305, 540, 20, convert$, #ES_CENTER|#PB_String_BorderLess|#PB_String_ReadOnly)
      EndIf
   EndIf
EndProcedure
            
OpenWindow_WIN()
            
;{- Event loop
   Repeat
      Event = WaitWindowEvent()
         Select Event
            Case #PB_Event_Gadget
               EventGadget = EventGadget()
                  EventType = EventType()
                  Select EventGadget
                     ;-TXT en IMAGE - Lecture du fichier txt
                     Case #BT1
                        filtre$=filtre1$
                        filtre=0
                        NomFichier$ = OpenFileRequester(loadtxt$,"",filtre$, 0)
                        OpenFile(#Fichier, NomFichier$)
                       nbc=0                      ;nbp=1
                      ClearList(Liste()) 
                      Position=0
                      tf$=Str(Lof(#Fichier))          ; taille du fichier
                      tf$=RSet(tf$,16,"0")             ; ajout de "0" à gauche  12 chiffre  
                      AddElement(Liste())             ; formattage de la taille en pixel 2x4
                      liste()=car_pixel(Asc(Mid(tf$,1,1)),Asc(Mid(tf$,2,1)),Asc(Mid(tf$,3,1)),Asc(Mid(tf$,4,1)))
                      AddElement(Liste())
                      liste()=car_pixel(Asc(Mid(tf$,5,1)),Asc(Mid(tf$,6,1)),Asc(Mid(tf$,7,1)),Asc(Mid(tf$,8,1)))
                      AddElement(Liste())
                      liste()=car_pixel(Asc(Mid(tf$,9,1)),Asc(Mid(tf$,10,1)),Asc(Mid(tf$,11,1)),Asc(Mid(tf$,12,1)))
                      AddElement(Liste())
                      liste()=car_pixel(Asc(Mid(tf$,13,1)),Asc(Mid(tf$,14,1)),Asc(Mid(tf$,15,1)),Asc(Mid(tf$,16,1)))
                      AddElement(Liste())
                      liste()=car_pixel(91,60,35,93)  ; [<#]  balise
                      nbc+20
                      CloseFile(#Fichier)
                        If OpenFile(#Fichier, NomFichier$) 
                           While Eof(#Fichier)=0 
                              car1.c=0
                              car2.c=0
                              car3.c=0
                              car4.c=0
                              If ReadData(#Fichier,@car1,1)
                               nbc+1
                                 If ReadData(#Fichier,@car2,1)
                        nbc+1
                                    If ReadData(#Fichier,@car3,1)
                                       nbc+1
                                       If ReadData(#Fichier,@car4,1)
                                          nbc+1
                                       EndIf  
                                    EndIf
                                 EndIf
                              EndIf 
                              nbp=nbp+1
                              pixel= car_pixel(car1,car2,car3,car4)
                              AddElement(Liste())
                              Liste()=pixel
                              ;-VERIFICATION DE LA CONVERSION DANS LE Debug
                              ;   Debug "R:"+Str(car1)+" "+"G:"+Str(car2)+" "+"B:"+Str(car3)+" "+"A:"+Str(car4)
                              ;   Debug "Trad : "+Chr(car1)+Chr(car2)+Chr(car3)+Chr(car4)

                           Wend
                           ;Debug "Il y a "+Str(nbc)+" caracteres"
                           CloseFile(#Fichier)
                           
                        
                           ;-{   1ere tentative de gestion de la taille des images.
                           ; MessageRequester("test",Str(nbc)) : End ; test
                           If nbc<22500
                           Xpic=150 : Ypic = 50
                              ; ElseIf nbc=22500 Or nbc<48000
                              ; Xpic=320 : Ypic=50
                           ElseIf nbc=22500 Or nbc<144000
                              Xpic=320 : Ypic = 150
                           ElseIf nbc=144000  Or nbc<384000
                              Xpic=640 : Ypic = 400
                           ElseIf nbc=384000  Or nbc<1440000
                              Xpic=800 : Ypic = 600
                           ElseIf nbc=1440000  Or nbc<2359296
                              Xpic=1024 : Ypic = 768
                           ElseIf nbc=2359296  Or nbc<3932160
                              Xpic=1280 : Ypic = 1024
                           ElseIf nbc>3932159
                              MessageRequester("Alert",alert$)
                              Break
                           EndIf
                              ;-FinModif
         
                              ;-TXT en IMAGE 
                           CreateImage(#Image,Xpic,Ypic,32)
                              StartDrawing(ImageOutput(#Image))
                                 ResetList(Liste())
                                For Y=1 To Ypic-1
                                    For x=1 To Xpic-1
                                       compteur=compteur+1
                                          NextElement(Liste())
                                          pixel=Liste()
                                          DrawingMode(#PB_2DDrawing_Default)
                                          Plot(x,Y,pixel)
                                          DrawingMode(#PB_2DDrawing_AlphaChannel)
                                          Plot(x,Y,pixel)                                                         
                                       If compteur=nbp+5   ; ajout 5 rangs au compteur pour taille et balise
                                          compteur=0
                                          Break 2
                                       EndIf                               
                                    Next x  
                                 Next Y   
                              StopDrawing()   
                              ;- Sauvegarde
                                 Delay(500)
                                 SetGadgetText(#AFFICHE,wait$)
                                 filtre$=png$
                                 filtre=0
                                 NomFichier$ = SaveFileRequester(savpng$, "", filtre$, 0)
                                 ext$=LCase(GetExtensionPart(NomFichier$))
                              If ext$<>"png" : NomFichier$=NomFichier$+".png" : EndIf
                                                
                                 If NomFichier$
                                    OpenWindow_SplashWin() 
                                    Resultat = SaveImage(#Image, NomFichier$ , #PB_ImagePlugin_PNG) 
                                    SetGadgetText(#AFFICHE,over$)
                                    CloseWindow(#SplashWin)
                                 Else
                                    SetGadgetText(#AFFICHE,Cancel$) ;-annul
                                 EndIf
                                 Else
                                 SetGadgetText(#AFFICHE,Cancel$)
                                 EndIf
                                          
                              ;-IMAGE en TXT
                           Case #BT2
                              filtre$=filtre2$
                              filtre=0
                              NomFichier$ = OpenFileRequester(Loadpng$, "", filtre$, 0)
                              Texte$="":car_4$="":pixel=0:compteur=0
                              Resultat = LoadImage(#Image, NomFichier$,32)
                              If OpenFile(#Fichier, NomFichier$)
                                 OpenWindow_SplashWin()
                                    nbff=1
                                    StartDrawing(ImageOutput(#Image))
                                    For Y=1 To ImageHeight(#Image)-1
                                       For x=1 To  ImageWidth(#Image)-1
                                          nbf=nbf+1
                                          pixel=Point(x,Y)
                                          If pixel>0 
                                             DrawingMode(#PB_2DDrawing_Default)
                                             car_4$ = Chr(Red(pixel)) + Chr(Green(pixel)) + Chr(Blue(pixel))
                                             ;Debug "sans Alpha : "+car_4$
                                             DrawingMode(#PB_2DDrawing_AlphaChannel)
                                             car_4$ + Chr(Alpha(Point(x,Y))) ;;avec point(x,Y) le canal alpha indique zero sino avec pixel rien
                                             ;Debug "avec Alpha : "+car_4$
                                          EndIf
                                          Texte$+car_4$
                                          If Left(car_4$,4)="[<#]"                     ;  recherche balise taille
                                           debutf=Len(texte$)                          ;  nb caracteres  (taille et la balise) en principe 16 (3x4)
                                           tf=Val(Right(texte$,16))+debutf+1 ;(+1=16)  ;  recupere la taille du fichier et ajoute de 3 rangs de 4 pour synchro compteur
                                          texte$=""                                   ;  enlève les infos taille du texte après lecture
                                          EndIf
                                          If nbf=(tf+1)/4:Break 2:EndIf              
                                       Next x 
                                  Next Y                                                                             
                                 StopDrawing()
                                 FreeImage(#Image)
                                 ;-editeur
                                 If OpenWindow(#fenetre_editeur,330, 155, 640, 660,"Result")
                                    CloseWindow(#SplashWin)
                                       If CreateGadgetList(WindowID(#fenetre_editeur))
                                          EditorGadget(#editeur,5, 5, 630, 550 )
                                             ButtonGadget(#BTcopy, 5, 560, 630, 45, Clipb$, #BS_FLAT)
                                             ButtonGadget(#BTsave, 5, 610, 630, 45, savtxt$, #BS_FLAT)
                                             SendMessage_(GadgetID(#editeur), #EM_SETTARGETDEVICE, #Null, 0)

                                             ;-Suppression du CHR(255)
                                             ;Texte$=RemoveString(Texte$,Chr(255)) ;
                                             ;--------
                                                            
                                             SetGadgetText(#editeur, Texte$)
                                 ;PureCOLOR_SetWindowColor(#fenetre_editeur, $979797)
                                          EndIf
                                    EndIf
                                    Repeat
                                    Event2 = WaitWindowEvent()   
                                       Select Event2   
                                          Case #PB_Event_Gadget
                                             EventGadget = EventGadget()
                                                Select EventGadget
                                                   Case #BTcopy 
                                                      Texte$=GetGadgetText(#editeur) 
                                                      SetClipboardText(Texte$)
                                                      MessageRequester("OK",clipbok$)    
                                                   Case #BTsave
                                                      Texte$=GetGadgetText(#editeur) 
                                                      Defaut$ = Path$
                                                      filtre$ = styl$
                                                      filtre = 0  
                                                      FichierSave$ = SaveFileRequester(nomfich$, Defaut$, filtre$, filtre)
                                                      ext$=LCase(GetExtensionPart(FichierSave$))
                                                   If FichierSave$
                                                      If ext$<>"txt" : FichierSave$=FichierSave$+".txt" : EndIf
                                                      If CreateFile(1, FichierSave$)
                                                         WriteString(1, Texte$,#PB_Ascii)    
                                                         CloseFile(1) 
                                                         MessageRequester("Info",fi$+FichierSave$+aec$)
                                                      Else
                                                         MessageRequester (Error$,Error$)
                                                      EndIf
                                                   Else
                                                    SetGadgetText(#AFFICHE,Cancel$)
                                                   EndIf
                                                EndSelect 
                                             Case #PB_Event_CloseWindow
                                                CloseWindow(#fenetre_editeur)   
                                                HideWindow(#WIN, 0)
                                                SetGadgetText(#AFFICHE,over$)
                                          EndSelect
                                                Until  Event2=#PB_Event_CloseWindow
                                          Else
                                          EndIf
                                          
                        EndSelect
                  Case #PB_Event_CloseWindow
                     EventWindow = EventWindow()
               Select EventWindow
                  Case #WIN
                     CloseWindow(#WIN)
                        Break
               EndSelect
         EndSelect
ForEver
Dernière modification par kernadec le ven. 26/mars/2010 18:46, modifié 4 fois.
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par case »

pourquoi ne pas compresser le texte avant aussi ?
ImageImage
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par Ar-S »

super Kernadec, je vais regardé ça d'ici peu (demain je pense).
Cet aprem j'ai ajouté un bouton pour convertir de la même façon un texte venant du presse papier.
Et là tout est nikel.

Code : Tout sélectionner

;-BT 3
; pour info   space1$=chr(32)       space2$=chr(32)+chr(32)      space3$=chr(32)+chr(32)+chr(32)
        Case #BT3
          TexteApixel$=GetClipboardText()
          If TexteApixel$=""
            MessageRequester(Error$,ErrorClipb$)
          Else
            nbc=0
            NbrCar=Len(TexteApixel$)
            PixelMin=NbrCar/4
            PixelMin+1 ; 1 px pour le car rgba(0,0,0,255) qui indiquera la fin du decriptage de la futur image
            Reste=NbrCar%4
            Debug "Pour "+Str(NbrCar)+" caractères, il faudra au minimum "+Str(PixelMin)+" pixels"
            Debug Str(NbrCar)+"/ 4 ="+Str(PixelMin)+" reste "+Str(Reste)
            If Reste<>0
              PixelMin+1 ; 1 px pour les "restes" de la division 
              If Reste=1
                TexteApixel$+space3$ ; pour être sur que la derniere pixel est pleine
                NbrCar=Len(TexteApixel$)
              ElseIf Reste=2
                TexteApixel$+space2$ ; pour être sur que la derniere pixel est pleine
                NbrCar=Len(TexteApixel$)
              ElseIf Reste=3
                TexteApixel$+space1$ ; pour être sur que la derniere pixel est pleine
                NbrCar=Len(TexteApixel$)
              EndIf
              Debug "Aprés rectification, pour "+Str(NbrCar)+" caractères, il faudra au minimum "+Str(PixelMin)+" pixels"
            EndIf
            ClearList(Liste())
            Position=1
            AddElement(Liste())
            Liste()=-1
            For i=1 To PixelMin

              carEncour$=Mid(TexteApixel$,Position,1)
              car1= Val(Str(PeekC (@carEncour$)))
              Debug "Car En Court : "+carEncour$ +" Valeur Ascii : "+Str(car1) 
              Position+1
              
              carEncour$=Mid(TexteApixel$,Position,1)
              car2= Val(Str(PeekC (@carEncour$)))
              Debug "Car En Court : "+carEncour$ +" Valeur Ascii : "+Str(car2)   
              Position+1 
              
              carEncour$=Mid(TexteApixel$,Position,1)
              car3= Val(Str(PeekC (@carEncour$)))
              Debug "Car En Court : "+carEncour$ +" Valeur Ascii : "+Str(car3)   
              Position+1 
              
              carEncour$=Mid(TexteApixel$,Position,1)
              car4= Val(Str(PeekC (@carEncour$)))
              Debug "Car En Court : "+carEncour$ +" Valeur Ascii : "+Str(car4)   
              Position+1 
              
              pixel= car_pixel(car1,car2,car3,car4)
              AddElement(Liste())
              Liste()=pixel

            Next i
            
             AddElement(Liste())
             Liste()=RGBA(0,0,0,255)
            
            nbp=PixelMin
            nbc=NbrCar
            
            ;-{   1ere tentative de gestion de la taille des images.
            If nbc<32000
              Xpic=160 : Ypic = 50
            ElseIf nbc>31999 And nbc<64000
               Xpic=320 : Ypic=50
            ElseIf nbc>63999 And nbc<192000
              Xpic=320 : Ypic = 150
            ElseIf nbc=191999  And nbc<1024000
              Xpic=640 : Ypic = 400
            ElseIf nbc>1023999  And nbc<1920000
              Xpic=800 : Ypic = 600
            ElseIf nbc>1919999  And nbc<3145728
              Xpic=1024 : Ypic = 768
            ElseIf nbc=3145727  Or nbc<5242880
              Xpic=1280 : Ypic = 1024
            ElseIf nbc>5242880
              MessageRequester("Alert",alert$)
              Break
            EndIf
            ;-FinModif
            
            ;-TXT en IMAGE 
            CreateImage(#Image,Xpic,Ypic,32)
            StartDrawing(ImageOutput(#Image))
              ResetList(Liste())
              compteur=0
              
              For Y=1 To Ypic-1
                For x=1 To Xpic-1
                  
                  NextElement(Liste())
                  pixel=Liste()
                  
                  DrawingMode(#PB_2DDrawing_Default)
                  Plot(x,Y,pixel)
                  DrawingMode(#PB_2DDrawing_AlphaChannel)
                  Plot(x,Y,pixel)
                  
                  compteur+1
                  If compteur=nbp+1
                    compteur=0
                    Break 2
                  EndIf                               
                Next x   
              Next Y   
            StopDrawing()   
            ;- Sauvegarde
            Delay(500)
            SetGadgetText(#AFFICHE,wait$)
            filtre$=png$
            filtre=0
            NomFichier$ = SaveFileRequester(savpng$, "", filtre$, 0)
            ext$=LCase(GetExtensionPart(NomFichier$))
            If ext$<>"png" : NomFichier$=NomFichier$+".png" : EndIf
            
            If NomFichier$
              OpenWindow_SplashWin() 
              Resultat = SaveImage(#Image, NomFichier$ , #PB_ImagePlugin_PNG) 
              SetGadgetText(#AFFICHE,over$)
              CloseWindow(#SplashWin)
            Else
              SetGadgetText(#AFFICHE,Cancel$) ;-annul
            EndIf
          EndIf  
Case
Le compresser ? je ni ai pas trop réfléchit, je pensais plutôt que j'allais permettre de crypter le contenu avant de le pixeliser.
En RC10 un peu bidouillé comme pour Message Secret 2.
Sinon comment tu compresserais le texte ? Y'a pas bien plus "vide" qu'un txt non ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par kernadec »

bonjour AR-S
Je viens de corrigé le code dans le post précédent juste avant celui de Case
pour me remettre les idées en place et de l'ordre dans les asciis
et aussi éliminé les errances passées...
j'ai mis aussi quelques commentaires pour pas perdre le fil
j'espère que ca va te convenir.. bonne journée

ps: Pour Les fichiers plus important, Je voudrais dire que l'on peut augmenter
la taille des fichiers avec 4 "0" de plus à gauche, Dans ce cas ne pas oublier
d'ajouter un rang dans la boucle de 3 a 4 lors de la mise en image.
mais je suis tombé sur une limite de 8k 8192 octets,

Peut être un rapport avec la taille de image en mémoire
en faite l'erreur etait due huit chiffre pour la taille insuffisante mainteant c'est 12
d'ailleurs je vais mettre 16 chiffes poue la taille.


cordialement
Dernière modification par kernadec le ven. 26/mars/2010 14:13, modifié 1 fois.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Texte => Pixels => Texte - erreurs (A nouveau)

Message par Ar-S »

Merci Kernadec,
ton code fonctionne sur de petits textes mais essaye avec ça.
http://arsworld.free.fr/pb/testPixel.txt

Chez moi le texte recréé est de +5500 car alors que l'original en a +25000

j'ai fait finir le texte par "FIN" pour que ce soit plus rapide à voir.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre