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
» mise a jour calculatrice
par JL35 Aujourd'hui à 14:14

» [solved] 3D_LINE How to ?
par papydall Aujourd'hui à 6:51

» supprimé
par joeeee2017 Dim 15 Oct 2017 - 20:02

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» Convertisseur de base 10 de 2 à 36
par gigi75 Sam 14 Oct 2017 - 21:54

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» supprimé
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

» Mise à jour PANOMAND
par jean_debord Mar 26 Sep 2017 - 11:33

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Texte en gif animé

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
JL35



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

MessageSujet: Texte en gif animé   Mar 19 Sep 2017 - 22: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 - 23:48, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5857
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Texte en gif animé   Jeu 21 Sep 2017 - 16: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 : 5952
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Texte en gif animé   Jeu 21 Sep 2017 - 18: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 : 5857
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Texte en gif animé   Ven 22 Sep 2017 - 9: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 : 5952
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Texte en gif animé   Ven 22 Sep 2017 - 13: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é
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» texte animé et roll-over
» Générateur de texte
» [Résolu] Texte impossible dans Outlook Express
» Affichage sous IE des smileys et gif animés
» un son au passage de souris sur une baniere animée (résolu)

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: