Pages : 1
#1 Le 10/05/2007, à 20:52
- Walsh
Capture d'écran multiplateforme ?
Bonjour,
Voici mon problème. Je voudrais pouvoir capturer la sortie graphique standard (comprenez par là la totalité de ce que l'on voit à l'écran).
Je me suis donc intéressé à SDL : une API portable et simple d'utilisation que j'ai déjà plusieurs fois utilisé. Mais je n'ai pas trouvé le moyen de récupérer ce que l'on voyais à l'écran. En gros, le but se rapprochait beaucoup des fonctionnalités d'un logiciel de capture d'écran. J'ai donc eu l'idée de me tourner vers des logiciels de capture d'écran open source (pour accéder au code évidemment).
Mais je n'ai malheureusement pas trouvé de logiciel libre de ce type qui était multiplateforme. Ce qui est bien dommage.
Voila donc la question : connaissez vous un ou plusieurs logiciels, libre, de capture d'écran, mutliplateforme et surtout écris en C/C++. Ou sinon connaissez vous le moyen de faire ce que j'ai décris plus haut, sur n'importe quelle plateforme ?
Je sais que j'en demande beaucoup et que c'est une question difficile .
Toutes les réponses sont les bienvenues.
Walsh
#2 Le 11/05/2007, à 11:00
- EdLeH
Re : Capture d'écran multiplateforme ?
Bonjour
J'ai eu besoin de faire un programme qui réalise des photos d'écrans aussi bien sous Linux que sous Windows.
N'ayant pas de Mac à disposition, je n'ai pas fait mais ça doit pouvoir marcher aussi. Il suffit de trouver la bonne librairie et la bonne instruction.
Par contre, c'est en python, mais tu dois pouvoir adapter.
N'ayant pas trouvé de librairie marchant sur les 2 systèmes, le principe est le suivant :
Détecter l'OS.
Si c'est Linux, j'utilise ImageMagic par la commande "import -silent -window root nomdufichier"
Si c'est Windows, j'utilise PIL par ImageGrab
Si c'est Mac, pour l'instant rien
ImageMagic marche aussi sur Windows, mais malheureusement pas la commande import.
Comme c'est une ligne de commande, tu pourras l'utiliser en C.
PIL marche aussi sur Linux, mais malheureusement pas le module ImageGrab.
Par contre, c'est du Python, mais il doit bien y avoir un équivalent en C.
Espérant que cela puisse t' aider un peu.
O-
Pascal
PS : la partie du code Python qui t'intéresse :
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os, sys
TheOs = sys.platform
nomfichier = "ecran.jpg"
fichier = os.path.join(chemin , nomfichier)
if TheOs == 'linux2':
ligne_commande = "import -silent -window root " + fichier
os.system(ligne_commande)
elif TheOs == 'win32':
import Image, ImageGrab
ImageGrab.grab().save(fichier)
else:
print "pas fait"
Hors ligne