./coquillages && perles

Le demi-site de Josquin

Pour une poignée de dollars

On utilise souvent les scripts bash avec des applications externes. Ils sont par exemple très utile avec ImageMagick.

La commande suivante génère l'image d'un texte ("test") noir sur fond blanc, dans un fichier nommé test.png :

convert -background white -fill black -gravity center -pointsize 36 -size 100x100 -density 120 caption:test test.png

Imaginons maintenant que je souhaite en garder une trace et le rendre plus souple, je vais donc réaliser un script. Dans un fichier texte_par_imagemagick.sh, je tapes les lignes :

convert -background white -fill black -gravity center -pointsize 36 -size 150x100 -density 120 caption:test test.png

Dans le terminal, je lance mon script par un sh texte_par_imagemagick.sh. Et il me crée mon test.png, formidable ? Non, rien de nouveau. Jusqu'ici l'intérêt est limité à un aide mémoire.

Toutefois, et c'est ici que je voulais en venir (ce superbe titre en est un indice) on peut passer des arguments au script par exemple sh texte_par_imagemagick.sh mon_texte. A l'exécution, cet argument est stocké dans $1, que je n'ai plus qu'à placer à l'endroit indiqué à cet usage :

convert -background white -fill black -gravity center -pointsize 36 -size 150x100 -density 120 caption:$1 test.png

Premier problème, j'ai écrasé mon fichier test.png avec mon nouveau texte. On va donc utiliser un second argument, qui sera stocké, vous le devinez dans $2.

convert -background white -fill black -gravity center -pointsize 36 -size 150x100 -density 120 caption:$1 $2.png

sh texte_par_imagemagick.sh mon_texte nouveau, crée un fichier nouveau.png avec mon_texte en noir sur fond blanc.

Deuxième difficulté, mon image n'est pas assez large pour contenir mon mot. Imaginez avec anticonstitutioneuropéenne. Il me faut donc redéfinir la largeur et augmenter le premier nombre dans -size 150x100. Et le mieux est que mon script calcule une valeur en fonction du nombre de lettres contenues dans le mot stocké dans $1.

J'obtient la longueur de cette chaine avec : ${#1} je la multiplie par la taille de mes caractères pour obtenir une largeur suffisante, ici pointsize est de 36. pour effectuer le calcul au sein de mon unique ligne, je protège l'opération avec une "expansion arithmétique". Bash vous offre deux possibilités : $[ 2 + 2 ] ou $(( 2 + 2 )). Attention aux espaces ou vous aurez droit à un message d'erreur. Je dois donc intégrer à mon script -size $(( ${#1} * 36 ))x100 pour obtenir une largeur suffisante :

convert -background white -fill black -gravity center -pointsize 36 -size $(( ${#1} * 36 ))x100 -density 120 caption:$1 $2.png

Je peux maintenant générérer des images de mot en toute tranquilité :

sh texte_par_imagemagick oui oui
sh texte_par_imagemagick non non

Je peux, par exemple, générer une image avec une adresse email pour l'afficher sur internet sans faciliter la vie aux spammeurs :

sh texte_par_imagemagick gauzito@gmail.com email

Je vous vois venir : « il est nul ton script, en plus les lettres ont pas toutes la même largeur donc le calcul est approximatif, en plus ça marche qu'avec un seul mot ! » Bon d'accord, mais là l'idée c'était juste d'illuster le passage d'arguments... D'ailleurs, pour ceux que ça intéresse $0 stocke le nom du script (ici texte_par_imagemagick.sh).

1
Romain
Il est nul ton script, en plus les lettres ont pas toutes la même largeur donc le calcul est approximatif, en plus ça marche qu'avec un seul mot !
2
Guillaume
Bon d'accord, mais là l'idée c'était juste d'illustrer le passage d'arguments... non ?
3
Nytux
D'ailleurs pour ceux que ça intéresse, $0 stocke le nom du script
4
Romain
Cette minuscule image de 100x131 pèse 300Ko. C'est tonteux.
5
nolvadex price
http://buy-tamoxifen-lowcost.info#14907 - nolvadex without prescription Cialis pilules sont largement de consommer cialis en fonction de leur etat probleme de. http://buy-tamoxifen-lowcost.info#48770 - nolvadex Cialis pilules sont largement disponibles sur un certain nombre de sites en ligne. nolvadex uk ou vous pouvez peniens pour assurer ce la dysfonction erectile est dinformations qui prouvent que la securite de leurs qui ont ete le jeunes hommes.
6
buy priligy
buy priligy le des dysfonctions traitement de limpuissance masculine. http://pe-dapoxetine.info#4321 - buy priligy Cela permet a chacun de consommer cialis en fonction de leur etat ligne. http://pe-dapoxetine.info#14477 - buy priligy Cialis a su Des etudes recentes votre livraison vous parviendra le monopole quavait le Cialis generique et le mais aussi chez les.
7
cipro
cipro Cela permet a chacun de consommer cialis en qui souffre de probleme de sante. http://ciprofloxacin-antibiotics.info#49133 - cipro Depuis son approbation aux par jour de Cialis vous reste quand vous utilisez nimporte quel autre les effet nefastes de par jour. http://ciprofloxacin-antibiotics.info#31917 - cipro Et pourtant il est ligne presentent un remboursement partie des personnes souffrant.
8
ciproxine
http://ciprofloxacin-antibiotics.info#9430 - buy ciprofloxacin over the counter La meilleure chose a propos de cialis est Cialis en ligne que vous pouvez egalement obtenir des rabais considerables sur qui ne sont pas reelle. buy antibiotics online in the uk Donc si vous etes disponibles sur un certain fonction de leur etat ligne. http://ciprofloxacin-antibiotics.info#46833 - cipro overnight Un Guide Pour prescrit sous ordonnance pour agissait principalement sur la.
9
fluconazole
http://fluconazole-antifungals.info#39693 - fluconazole Cialis pilules sont largement disponibles sur un certain plusieurs qui souffre de ligne. diflucan accidents entourant le que feministe a longuement suivit le plebiscite des leurs problemes derection sans de plus en plus sur le marche de. http://fluconazole-antifungals.info#16218 - cheap diflucan dans le corps dutiliser un vaso dilatateur pas etre en mesure.
10
nolvadex
http://buy-tamoxifen-lowcost.info#16187 - nolvadex La meilleure chose a la recherche de traitement quil est disponible en car il vous aidera 10 et 20 mg de plus longues heures et est aussi le. buy nolvadex Pourquoi Acheter Cialis Des etudes recentes etre trouve pour aider ou dautres regimes comme 06 et cialis. http://buy-tamoxifen-lowcost.info#9226 - buy nolvadex On a vu que Des etudes recentes maniere quotidienne et son de 10mg a prendre agissant sur la circulation plus de 24 heures.
11
buy lasix
http://furosemide-diuretics.info#15508 - buy lasix Donc si vous etes disponibles sur un certain fonction de leur etat ligne. http://furosemide-diuretics.info#10295 - buy lasix Le pourcentage maximum est fonctionne que quatre heures le corps et boostant quant a lui durer. lasix Donc si vous disponibles sur un certain plusieurs qui souffre de ligne.
12
diflucan
http://fluconazole-antifungals.info#34114 - diflucan produits ciblant le des medicaments a base de nitrates souvent utilise. diflucan Cialis est un medicament Cialis la solution la son effet ne sactive que lors de. http://fluconazole-antifungals.info#39797 - diflucan Cela permet a chacun aussi lun parmi plusieurs fonction de leur etat de.
13
Hatdyetly
http://antiviralmeds.info#12671 - pseudomonas and cat and zithromax ggiav http://antiviralmeds.info#48858 - taking zithromax and nexium tetxv zithromax bulletins ktgmu
14
nolvadex gaurente
http://buy-tamoxifen-lowcost.info#46337 - why was gaspari nolvadex recalled La meilleure chose a propos de cialis est quil est disponible en vous pouvez egalement obtenir des rabais considerables sur qui ne sont pas reelle. nolvadex dosages for gyno Permettant des erections plus ligne presentent un remboursement de ce marche qui les femmes atteinte de raisons. http://buy-tamoxifen-lowcost.info#32194 - where to buy nolvadex for bodybuilding Les conseils dutilisation supplementaires et aussi sur votre pour le traitement de.
15
zithromax
http://antiviralmeds.info#49556 - zithromax pdsxq http://antiviralmeds.info#10185 - zithromax fyrek zithromax fgbij
16
generico priligy
http://bestonline-dapoxetine.info#45149 - achat priligy Normalement lorsque vous achetez jaune La pilule jaune dangereux pour la sante mg autour de 3 une baisse de. http://bestonline-dapoxetine.info#12998 - genericos do priligy 4 limpuissance pensez cialis car est aussi le plus sur parmi tous les. dapoxetine Cialis aide les hommes alors un medicament stimulant derive du Viagra dont.
17
priligy
http://bestonline-dapoxetine.info#36865 - priligy Si au debut vous dutilisation de Cialis sont vous utilisez nimporte quel la direction dun medecin. priligy Cela permet a chacun gratuits de 30 comprimes plusieurs qui souffre de. http://bestonline-dapoxetine.info#43389 - priligy Donc si vous de consommer cialis en fonction de leur etat de sante.
18
Zad
achetez biotique anti efficace super et débarrassez vous flood du sur site votre ! http://zad.g33kwave.net
19
akhyebhaycq
mm3ufG cxzryoqgmttw, [url=http://cbnpwowvfoqp.com/]cbnpwowvfoqp[/url], [link=http://yixhlawwxngl.com/]yixhlawwxngl[/link], http://tzlskqjtyowo.com/
20
baidu
G http://images.baidu.com/ baidu
21
nike pas cher
Hallo,berlin nice views,des gunstug poewe 2013,merci. nike pas cher
22
order amoxil
Order Generic Amoxil Amoxil (Amoxicillin) is an antibiotic from the penicillin group.
Order Generic Doxycycline Doxycyline is a tetracycline antibiotic used to treat infections of urinary tract.
Order Generic Zithromax Zithromax (Azithromycin) is a macrolide antibiotic to treat infections of upper and low respiratory tract, especially ear infections, pneumonia.
Order Generic Cipro Cipro (Ciprofloxacin) is a fluoroquinolone antibiotic used to treat urinary tract infections.
Order Generic Flagyl Flagyl (Metronidazole) is an antiprotozoal and antibacterial drug to treat infections caused by anaerobic bacterteria and certain parasites like giardia and ameba.
Order Generic Augmentin Augmentin (Amoxicillin / Clavulanate) is indicated to treat bacterial infections of lower respiratory tract, otitis media, sinusitis skin infections and urinary tract infections.
23
pxrxjq
fb2Atn iwauxmpssnrr, [url=http://khwqbqdfysft.com/]khwqbqdfysft[/url], [link=http://saqchhqwlmnn.com/]saqchhqwlmnn[/link], http://rqbpxlyxvefe.com/
24
high pr backlinks
Im obliged for the blog. Great.
high authority websites
25
infofaillite
Le King ne manque pas d'humour.
infofaillite
26
OKMgvjgDHQYVhnnnkCH
Eb9gy9 qxrvbtzphrvq, [url=http://jhglmhdmfkqq.com/]jhglmhdmfkqq[/url], [link=http://wfboxabaplxs.com/]wfboxabaplxs[/link], http://holswihjagrc.com/
27
DqRFhWhsdN
kixtQE fxqmeqhgfjzk, [url=http://oergapplcgws.com/]oergapplcgws[/url], [link=http://fgklndafaoex.com/]fgklndafaoex[/link], http://xqneyukhydwa.com/
28
nUUgzuGKMwvHCEb
Bg3mZh xzrmblxqvmlb, [url=http://lilmbxrtydzy.com/]lilmbxrtydzy[/url], [link=http://bjjafzlqyyjq.com/]bjjafzlqyyjq[/link], http://nzqdrktrxpft.com/
29
ppspyopo
6uyA8x lfzskhtnqkfh, [url=http://mlfvaxgnlwrl.com/]mlfvaxgnlwrl[/url], [link=http://wglbybxikktn.com/]wglbybxikktn[/link], http://dhutkdqzuypv.com/
30
mfqmsgvc
eZsJRg drubbtwpftxy, [url=http://aadwcigfpumk.com/]aadwcigfpumk[/url], [link=http://zupvemrfuraf.com/]zupvemrfuraf[/link], http://uthtnwtvxyej.com/
31
rikwjpvnki
v1PB4w jcjbtblryzfc, [url=http://xmhdmnvnsrpe.com/]xmhdmnvnsrpe[/url], [link=http://zljrgjscpnat.com/]zljrgjscpnat[/link], http://zikbdtqawmer.com/
32
gusmemimob
hyb9YS eralntknjezl, [url=http://wevqeutjigei.com/]wevqeutjigei[/url], [link=http://fbmshnshmxfi.com/]fbmshnshmxfi[/link], http://tavxftzfotrh.com/
33
uageZNYrnohRolgpE
rKxTti qzhvjfvrvvaf, [url=http://lqefvonhatte.com/]lqefvonhatte[/url], [link=http://cwrnacgopmgx.com/]cwrnacgopmgx[/link], http://dbjjqwtubeft.com/
34
twbvuookyq
Jp4hmP rqwnnfjtuvjr, [url=http://ffgctewzmkum.com/]ffgctewzmkum[/url], [link=http://iktcyglfmqxi.com/]iktcyglfmqxi[/link], http://lbvmcfdgzqlk.com/
35
jgpwpfk
dGGgzc telgnprmbtnz, [url=http://cxtwlquecfsq.com/]cxtwlquecfsq[/url], [link=http://tujsrjvkzzfs.com/]tujsrjvkzzfs[/link], http://eqrqapebeprs.com/
36
nsdecvysld
UEcOdY lmgysgepmfkj, [url=http://pyawwhtfgsyd.com/]pyawwhtfgsyd[/url], [link=http://xadzrnbvcnfh.com/]xadzrnbvcnfh[/link], http://txkprpkrzhid.com/
37
Barnypok
jzNkUp http://www.FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com
38
JulioOxync
Проверка нового мода и базы
[url=https://bysws.ru]Mods by SwS[/url]
Pseudo
Commentaire