Re: [Fwd: Affichage d'images fixes synchronisées]
maderios, jeudi 13 septembre 2007, 20:02:18 CEST
>[...]
> Dans le projet, il s'agit d'afficher 3 images fixes sur 3 écrans
> 1920x1080 en même temps. Ce qui implique certainement 3 cartes
> graphiques, idéalement installées sur un seul PC afin de pouvoir
> synchroniser le tout très précisément de façon centralisée.
Deux cartes devraient suffire si l’une d’elles a deux sorties
séparées (dvi/vga ou vhs). Il existe aussi des cartes avec trois
sorties.
Sinon, si j’ai bien compris, tu veux afficher trois diaporamas
(différents ?) en même temps, avec des délais entre les images
différents ?
Effectivement, les diaporamas des visionneurs habituels ne
permettent pas d’avoir des délais différents. En revanche, tu
peux les utiliser (les visionneurs habituels) pour afficher des
images une par une, en plein écran, mais tu n’auras pas de jolie
transition entre les images. P.ex. avec le script (et qiv) :
#!/bin/sh
# usage: $0 img duree
qiv -f $1 &
sleep $2
kill %1
et la boucle :
while read img duree; do ./le_script.sh $img $duree; done < lst
ou le fichier 'lst' est une suite de lignes image - durée :
a1.jpg 12
toto.gif 86400
(qiv est très léger et rapide, il a une option -X pour choisir
l’écran Xinerama.)
Ce n’est pas génial car on revient au bureau (s’il y en a un)
pendant une fraction de seconde entre les images. On peut mettre
un fond noir et ne pas utiliser de wm.
Sinon, on peut assez facilement utiliser Ruby et SDL (paquet
libsdl-ruby1.8 et ses dépendances nécessaires) :
#!/usr/bin/env ruby
require 'sdl'
SDL.init(SDL::INIT_VIDEO)
screen = SDL::setVideoMode(1920, 1080, 0, SDL::FULLSCREEN)
while (ligne = STDIN.gets)
if ligne =~ /^(.*?)\s+([0-9]*)/
print "image ", $1, " pendant ", $2, " s.\n"
image = SDL::Surface.load($1)
screen.put(image, 0, 0)
screen.updateRect(0, 0, 0, 0)
sleep $2.to_i
else
print "scories dans le fichier :", ligne, "\n"
end
end
(Prend le même genre de fichier en entrée standard. Formats :
BMP, PPX, XPM, PCX, GIF, JPEG, PNG et TGA.
Voir http://www.kmc.gr.jp/~ohai/rubysdl_doc.en.html .)
Par contre, gérer sur quel écran ça va sortir, je laisse ça en
exercice au lecteur...
--
Sylvain Sauvage
Reply to: