FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Calculatrice
par papydall Hier à 22:54

» EPP_V01 éditeur pour Panoramic
par Minibug Mer 19 Sep 2018 - 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Mer 19 Sep 2018 - 21:02

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Mer 19 Sep 2018 - 15:58

» Planétarium virtuel.
par Pedro Alvarez Mer 19 Sep 2018 - 9:28

» Demande pour Jack concernant PanExpress
par Marc Mar 18 Sep 2018 - 23:56

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Orbites de l’ensemble de Mandelbrot
par Jean Claude Lun 10 Sep 2018 - 21:08

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Texte en gif animé

Aller en bas 
AuteurMessage
JL35



Nombre de messages : 6326
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Texte en gif animé   Mar 19 Sep 2017 - 21:50

Le texte donné s'affiche lettre par lettre, de manière répétitive.
Pour des fêtes, anniversaires, etc., à insérer par exemple dans un email.
Le programme crée les images successives, mais pour l'assemblage en gif animé (je ne sais pas faire, le format est un peu complexe...) il est fait appel à une ressource externe: convert.exe, qui est un composant de ImageMagick, très puissant traitement d'images diverses (freeware, évidemment).
Téléchargeable ici (version Windows): https://www.imagemagick.org/script/download.php#windows.

Ci-dessous l'appel à la sub, la sub de création et d'assemblage des images elle-même, puis la sub de visualisation du résultat:
Code:
DIM txt$,fnt$,sz%,enr%,ctx%,cfd%,delai%,fr$

txt$ = "Bonsoir les Panoramiciens !"
fnt$ = "Arial": sz% = 28: enr% = 3
ctx% = 255*65536: cfd% = 255*65536+255*256
delai% = 15: ' 15/100° de seconde entre les lettres
fr$ = "C:\TEMP\Pano.gif"
Text_Anim(txt$,fnt$,sz%,enr%,ctx%,cfd%,delai%,fr$)
Gifanime(fr$,10,20): ' affichage du résultat
END
' ==============================================================================
SUB Text_Anim(txt$,fnt$,sz%,enr%,ctx%,cfd%,delai%,fr$)
  ' Création d'un texte animé (écriture progressive) en gif animé dans fr$
  ' txt$ = texte, fnt% = police, sz% = taille, enr% = enrichissements
  ' (=1 gras, =2 italique, =4 souligné, combinables)
  ' ctx% = couleur texte, cfd% = couleur fond (de la forme R*65536+G*256+B)
  ' delai% = intervalle d'affichage des lettres en 100° de seconde
  DIM_LOCAL cv$,p%,i%,j%,rr$,rc$,r%,g%,b%,w%,x%,a$,fas$,q$,fita
  cv$ = "C:\PROGRA~1\IMAGEM~1.3-Q\convert.exe": ' <=== chemin de convert.exe, à ajuster
  rr$= "C:\TEMP\Gifani"
  fas$ = "Anim.gif"
  q$ = CHR$(34)
  fita = 1.15: ' facteur de correction pour italiques (sinon, troncatures)
  p% = 900
  PICTURE p%: HIDE p%: PRINT_TARGET_IS p%: FONT_NAME p%,fnt$: FONT_SIZE p%,sz%
  IF BIN_AND(enr%,1) = 1 THEN FONT_BOLD p%
  IF BIN_AND(enr%,2) = 2 THEN FONT_ITALIC p%
  IF BIN_AND(enr%,4) = 4 THEN FONT_UNDERLINE p%
  i% = TEXT_WIDTH(txt$,p%): IF BIN_AND(enr%,2) = 2 THEN i% = i%*fita
  WIDTH p%,i%: HEIGHT p%,TEXT_HEIGHT(txt$,p%)
  2D_TARGET_IS p%
  r%=INT(cfd%/65536): g%=BIN_AND(cfd%,65280)/256: b%=BIN_AND(cfd%,255)
  2D_FILL_COLOR r%,g%,b%
  r%=INT(ctx%/65536): g%=BIN_AND(ctx%,65280)/256: b%=BIN_AND(ctx%,255)
  FONT_COLOR p%,r%,g%,b%
  IF DIR_EXISTS(rr$)=1
      EXECUTE_WAIT "cmd.exe /c DEL /Q "+rr$+"*.bmp"
  ELSE
      DIR_MAKE rr$
  END_IF
  rc$ = DIR_CURRENT$: DIR_CHANGE rr$
  x% = 0
  FOR i% = 1 TO LEN(txt$)
      a$ = MID$(txt$,i%,1): w% = TEXT_WIDTH(a$,p%)
      IF BIN_AND(enr%,2) = 2 THEN w% = w%*fita
      PRINT_LOCATE x%,0: PRINT a$: x% = x%+w%
      FILE_SAVE p%,"Img"+RIGHT$("0"+STR$(i%),2)+".bmp"
  NEXT i%
  FOR j% = i% TO i%+4: FILE_SAVE p%,"Img"+RIGHT$("0"+STR$(j%),2)+".bmp": NEXT j%
  rc$ = DIR_CURRENT$: DIR_CHANGE rr$
  IF FILE_EXISTS(fr$) = 1 THEN FILE_DELETE fr$
  EXECUTE_WAIT "CMD.exe /C "+cv$+" -delay "+STR$(delai%)+" -loop 0 *.bmp "+fas$
  IF FILE_EXISTS(fr$) = 1 THEN FILE_DELETE fr$
  FILE_COPY q$+fas$+q$,q$+fr$+q$
  DIR_CHANGE rc$
  EXECUTE_WAIT "cmd.exe /c RD /S /Q "+rr$
  2D_TARGET_IS 0: PRINT_TARGET_IS 0: DELETE p%
END_SUB
' ==============================================================================
SUB Gifanime(f$,x%,y%)
  ' Affichage en x%,y% du gif animé f$
  DIM_LOCAL fh$,v%(4),hv%,w%,h%
  fh$ = "Z:\Gifani.htm": ' <==== Fichier de manoeuvre, à ajuster
  FILEBIN_OPEN_READ 9,f$
    FILEBIN_POSITION 9,6: FILEBIN_BLOCK_READ 9,4,v%(0)
    w% = v%(0) + 256*v%(1): h% = v%(2) + 256*v%(3): ' dimensions du gif
  FILEBIN_CLOSE 9
  FILE_OPEN_WRITE 9,fh$
    FILE_WRITELN 9,"<HTML>"
    FILE_WRITELN 9,"<IMG SRC="+f$
    FILE_WRITELN 9,"</HTML>"
  FILE_CLOSE 9
  hv% = 900: WHILE OBJECT_EXISTS(hv%)=1: hv% = hv%+1: END_WHILE
  HVIEWER hv%: TOP hv%,y%: LEFT hv%,x%: WIDTH hv%,w%+20: HEIGHT hv%,h%+20
  FILE_LOAD hv%,fh$
  FILE_DELETE fh$
END_SUB
' ===============================================================================
et le résultat:


Dernière édition par JL35 le Jeu 21 Sep 2017 - 22:48, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5929
Age : 46
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Texte en gif animé   Jeu 21 Sep 2017 - 15:01

le problème c'est qu'avec l'italic, les parties les plus à droite des lettres sont tronquées ce qui ne fait pas très joli.
Mais peut être que JL35 va trouver une méthode permettant de ne pas écraser cette partie
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6326
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Texte en gif animé   Jeu 21 Sep 2017 - 17:49

Bonjour ami Jicehel,
Tu as évidemment raison pour l'italique, j'ai remarqué également, dans ce cas les lettres se chevauchent plus ou moins et ça tronque un peu la précédente.
La largeur de chaque lettre est donnée par TEXT_WIDTH, mais ce n'est pas tout à fait exact en italique.
Je vais rajouter quelque chose comme 10% à la largeur donnée dans le cas italique, ça devrait suffire.

Voilà, j'ai ajouté là-haut un facteur de correction (variable 'fita' dans la sub) pour l'italique, j'augmente la valeur donnée par TEXT_WIDTH de 15% (10% est un peu juste), ça dilate un peu le texte mais bon...
(Et contrairement à ce que je pensais, le problème est le même avec une police à pas fixe, encore plus accentué visuellement, mais avec 15% ça suffit comme correction).

Je viens également d'ajouter un temps de latence à la fin de l'affichage du texte complet, avant le réaffichage depuis le début (ligne 49, valeur arbitraire, modulable), pour que le texte complet soit lisible pendant quelques secondes

Et ça donne ceci:
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5929
Age : 46
Localisation : 77500
Date d'inscription : 18/04/2011

MessageSujet: Re: Texte en gif animé   Ven 22 Sep 2017 - 8:49

Oui, après on peut toujours ajuster comme on veut maintenant pour avoir un affichage parfait.
Ce genre de réglage est toujours un peu délicat, mais bon on n'écrit pas forcément tous les messages en italique non plus.
En tous cas je pense que maintenant ta procédure est en effet suffisamment complète pour répondre aux besoins. Bien joué JL35.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6326
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Texte en gif animé   Ven 22 Sep 2017 - 12:29

Merci Jicehel,
et en effet le code est simple, et on peut facilement modifier les paramètres pour les adapter à son goût personnel.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Texte en gif animé   

Revenir en haut Aller en bas
 
Texte en gif animé
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Texte riche
» [Résolu] Fichier phi
» pb de e-anim à la page html
» E anim fx (effet de texte)
» Animé le texte quand on passe le curseur de la souris

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: