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
» Un prg Panoramic s'abime avec le temps
par papydall Aujourd'hui à 3:14

» Planétarium virtuel.
par Pedro Alvarez Hier à 16:58

» Dessin 2D: largeur de trait (résolu !)
par Jicehel Hier à 15:16

» Promenade dans le Ciel
par papydall Hier à 3:13

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Sam 23 Juin 2018 - 17:00

» Nouvelle version 0.34
par jean_debord Sam 23 Juin 2018 - 9:39

» Quantité de mémoire utilisée par un exe
par mindstorm Jeu 21 Juin 2018 - 21:22

» Projet de planétarium virtuel.
par Jean Claude Jeu 21 Juin 2018 - 19:02

» Animation: Feux de signalisation
par Minibug Mer 20 Juin 2018 - 20:28

» Problème avec 'file_load'.
par Pedro Alvarez Lun 18 Juin 2018 - 8:12

» Version instantanée V 0.9.28i20 du 13/06/2018
par jjn4 Sam 16 Juin 2018 - 14:25

» string$(0,chr$(32)) sans erreur
par silverman Ven 15 Juin 2018 - 19:56

» Version instantanée V 0.9.28i19 du 13/06/2018
par Minibug Ven 15 Juin 2018 - 19:14

» Mes souhaits d'amélioration de Panoramic.
par Pedro Alvarez Jeu 14 Juin 2018 - 20:17

» [RÉSOLU] Message d'erreur impossible à indentifier
par Minibug Mer 13 Juin 2018 - 20:52

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2018
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Texte en gif animé

Aller en bas 
AuteurMessage
JL35



Nombre de messages : 6292
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 : 5924
Age : 45
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 : 6292
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 : 5924
Age : 45
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 : 6292
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
» texte animé et roll-over
» pb de e-anim à la page html
» E anim fx (effet de texte)

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: