lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Images prises depuis Internet


From: Jean Abou Samra
Subject: Re: Images prises depuis Internet
Date: Wed, 29 Jun 2022 20:20:06 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0

Le 29/06/2022 à 09:48, Jean Abou Samra a écrit :
Bonjour,

(Pense à donner un titre à ton message à l'avenir afin qu'on
se souvienne facilement de ce dont il s'agit dans son courrielleur.)

Le 29/06/2022 à 09:36, david427@mailo.com a écrit :
Bonjour,

Je sais insérer une image dans un markup :
\markup { \epsfile #X #8 #"image.eps" }

Dans ce cas, il faut que l'image soit sur le disque dur de l'utilisateur...


Ma question : Est-il possible de mettre une adresse internet à la place ?
un truc du genre :
\markup { \epsfile #X #8 #"http://monsite.fr/image.eps"; }


Qu'entends-tu par là ? Télécharger l'image automatiquement
lors de la compilation du .ly et l'inclure ? Ou bien inclure
un lien dans le PDF ?

Télécharger l'image à la compilation n'est pas possible à
ma connaissance, du moins pas en 2.23 avec les binaires
officielles, pour la simple et bonne raison que ces binaires
sont compilées avec une version de Guile sans les fonctionnalités
liées au réseau, pour des raisons de sécurité.



Toutes mes excuses, j'ai dit une bêtise. Bien que les fonctionnalités
de réseau soient désactivées à l'intérieur de Guile, il est toujours
possible d'exécuter des commandes du système qui, elles, y ont accès.
Par exemple, sous GNU/Linux, ce genre de truc devrait marcher :

\version "2.23.11"

from-network =
#(let ((keep-these '()))
   (define-scheme-function (url) (string?)
     (let* (;; Un fichier temporaire
            (port (mkstemp! "/tmp/from-network-XXXXXX"))
            ;; Le nom de ce fichier
            (filename (port-filename port)))
       ;; Il est prudent de s'assurer qu'aucun autre processus n'écrit dans
       ;; ce fichier entre le moment où il est écrit par wget et le moment
       ;; où LilyPond le lit. Pour cela, on place le port dans une liste qui        ;; n'est jamais effacée. Cela empêche le port d'être effacé, ce qui le
       ;; garde ouvert.
       (set! keep-these (cons port keep-these))
       ;; Le téléchargement
       (system* "wget" url "-O" filename)
       filename)))

\markup \epsfile #X #20 \from-network "https://people.sc.fsu.edu/~jburkardt/data/ps/bell_206.ps";


Néanmoins, je ne le recommande pas vraiment dans la mesure où
cela fait un téléchargement de l'image à chaque compilation.
Autant faire le téléchargement une fois.

Cordialement,
Jean





reply via email to

[Prev in Thread] Current Thread [Next in Thread]