Jump to content

Archived

This topic is now archived and is closed to further replies.

theocrite

[GLOBAL] 100% question pour un pinguin

Recommended Posts

comme je suis dans mon jour de bonté, j'en ai une deuxième, où cette fois si le bash est autorisé ...

j'avais besoin l'autre jour de dater des événements à la seconde près ...

je voulais donc faire une boucle en shell qui m'affiche l'heure en temps réél sur une seule ligne (qui ne scroll pas) et que je pouvais néanmoins faire scroller à la main pour noter mes événements. En gros une sorte de chrono, à chaque fois que j'appuie sur entrée ça m'enregistre l'heure :

# <la super ligne de shell>
22:19:14 [appui sur entrée à 22:19:14]
22:19:57 [appui sur entrée à 22:19:57]
22:20:02 ..
22:20:03

le tout en une seule ligne de commande relativement simple pour la taper vite et ne pas charger la machine...

indice : la ligne de commande fait ~ 60 caractères ...

2 solutions :

- soit un truc à base de

while read; do date +%X; done

- soit, plus classe je trouve, tu règles ton prompt pour qu'il affiche l'heure, avec la variable PS1 :

export PS1="\t [\u@\h \w]\$ "

Marrant :)

Mais j'ai pas très bien compris ta question Sandeman, c'est bien ça que tu voulais faire ?

Link to post
Share on other sites

effectivement... :fumer:

je croyais qu'en mettant les \b avec le date, l'heure ne s'afficherais jamais (tout de suite effacée), mais en fait, \b recule d'un caractère sans l'effacer, donc... :yes:

d'ailleurs, c'est plus court comme ça :

while echo -ne "`date +"%T"`\r"; do sleep 1; done

Link to post
Share on other sites

:-D

tant qu'il n'y a personne, une ultra facile :

voilà, je suis un maniac de la photo, et depuis que j'ai un super appareil numérique, je prends énormement de photos.

En plus, je suis devenus fou de l'option 'rafale', entre 2 et 3 images par seconde.

j'ai donc des dossiers contenant 50 images prise à la suite et j'aimerais faire un montage qui me les resize toutes en 400x400 et qui mets la date du traitement en bas et surtout qui me fait un gif animé du résultat.

par chance, mon appareil nomme mes photos par ordre croissant : img_0018.jpg par exemple :mdr:

donc je résume, il faut :

1. prendre toutes les photos d'un répertoire.

2. les resizer en 400x400

3. ajouter un texte contenant la date du traitement centré en bas

4. en faire un gif animé a raison de trois images par seconde (à peu près hein)

5. le tout en UNE ligne de shell, parce que je suis avare en touche tapée sur mon clavier :-D

à vos marque, près, partez!

Link to post
Share on other sites

le resize, l'ajout de texte et la création de gif animée se fait sans problème avec image magic.....

mais alors le détail.... plouf :-D

au passage il serait mieux de faire du mng......

avoir la qualité d'image du png et l'annimation en plus ca le fait :-D

edit: c'est la première fois que je comprends la question, ca s'arrange :mdr:

Link to post
Share on other sites

c'est une méchante ligne de l'espace avec convert

à l'arrache, sans soigner l'esthétique sur la date :

for i in `ls` do; fdate=`ls -l $i | awk '{print $6 " " $7 " " $8}'`; convert -sample 400x400 -font helvetica -fill blue -draw "text 100,100 $fdate"  $i $i.png; done; convert -delay 33 *.png anim.mng; rm *.png 

Link to post
Share on other sites
Un Makefile et c'est fini... il peut y avoir 50étapes à faire, un "make" et c'est fini :youhou:

:youhou:

pas de fichier à écrire, juste une ligne. donc pas de Makefile.

c'est une méchante ligne de l'espace avec convert

à l'arrache, sans soigner l'esthétique sur la date :

for i in `ls` do; fdate=`ls -l $i | awk '{print $6 " " $7 " " $8}'`; convert -sample 400x400 -font helvetica -fill blue -draw "text 100,100 $fdate"  $i $i.png; done; convert -delay 33 *.png anim.mng; rm *.png

oui, ce n'est qu'une méchante ligne de convert, alors pourquoi s'embetter à en faire plusieurs, avec des for, etc... :pleure:

on s'en approche, mais s'est plus simple :pleure:

Link to post
Share on other sites

Bon, après quelques tests, le mieux que j'ai trouvé, c'est ça :

 $ convert -delay 33 -size 400x400 -resize 400x400! -gravity "Center" -draw "text 0,190 \"$(date +%D)\"" *.jpg out.gif

(et en plus, ça consomme pas 1Go de ram, ce qui est le cas si on ne met que le resize...)

(si on veut garder l'aspect 4/3, il faut enlever le point d'exclamation et modifier la position du texte...)

(pour la date y'a moyen de changer la forme)

(et aussi la couleur du texte)

EDIT : remplacer out.gif par out.mng pour faire du mng :craint:

Link to post
Share on other sites


×
×
  • Create New...