[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Images prises depuis Internet
From: |
Ya Gloops |
Subject: |
Re: Images prises depuis Internet |
Date: |
Thu, 30 Jun 2022 07:38:21 +0000 (UTC) |
Bonjour !
Ca ne fonctionne pas chez moi, mais je ne suis qu'en version 2.23.10, c'est
peut être pour ça...
D'une manière générale, comme on fait avec "\epsfile", peut on importer
d'autres format que *.eps, par exemple *.png ou *.jpg ?
Gilles
Le mercredi 29 juin 2022 à 20:20:30 UTC+2, Jean Abou Samra <jean@abou-samra.fr>
a écrit :
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