[C] Récupération sous forme d'image du contenu d'une fenêtre... (win)

Récupération sous forme d'image du contenu d'une fenêtre... (win) [C] - C++ - Programmation

Marsh Posté le 16-07-2002 à 10:14:07    

Voilà mon petit soucis :
ce que j'ai programmé jusqu'à présent me permet de récupérer le contenu d'une fenêtre "classique" de windows...
MAIS lorsque je veux récupérer une image provenant d'un flux vidéo, je n'ai plus qu'une zone noire !
 
plz Help...
(merci d'avance)

Reply

Marsh Posté le 16-07-2002 à 10:14:07   

Reply

Marsh Posté le 16-07-2002 à 13:34:24    

A mon humble avis, ça doit être très sioux.
 
On a un soft (Win 3.11) qui affiche ce que voit une caméra (échantillon). La copie d'écran ne donne jamais rien, car le soft écrit à l'écran ""directement"" à sa façon, sorte d'incrustation.
 
Y a peut-être une solution (complexe) ?

Reply

Marsh Posté le 16-07-2002 à 13:45:53    

Ce ne serait-il pas un truc du style...
Cro$oft qui ne veut pas tout dire ?
A moins que ce ne soit l'application qui aille écrire directement dans la mémoire de la carte graphique...
 
PS : en tout cas tout va bien pour moi et les appli en OpenGL.

Reply

Marsh Posté le 16-07-2002 à 14:07:14    

Tu veux faire quoi exactement? Récupérer des images en provenance d'un fichier vidéo style avi?


---------------
Le Tyran
Reply

Marsh Posté le 16-07-2002 à 14:17:49    

Si tu fais ta capture d'écran à partir d'un Device Context, tu ne dois pouvoir récuperer que ce qui est "dessiné" par les fonctions GDI.
 
Le flux video doit utiliser DirectShow pour l'affichage donc c'est sans doute pour ça que ça ne fonctionne pas.

Reply

Marsh Posté le 16-07-2002 à 14:53:20    

>Leto II
avi ou autre. En fait tout ce qui serait succeptible de pouvoir être affiché.
 
>Smaragdus
et dans ce cas y a-t-il une solution 'simple' ?

Reply

Marsh Posté le 16-07-2002 à 14:54:54    

Je suis pas sûr qu'il y ai une solution générale (à part d'aller relire la mémoire vidé mais ça devient compliqué là :D)


---------------
Le Tyran
Reply

Marsh Posté le 16-07-2002 à 15:00:27    

letoII a écrit a écrit :

Je suis pas sûr qu'il y ai une solution générale (à part d'aller relire la mémoire vidé mais ça devient compliqué :D)




 
ouaip parce que ça m'étonnerait que windows laisse l'accès au materiel aussi facilement.
 
BB138, si tu veux juste extraire une frame d'un flux AVI, utilise DirectShow.

Reply

Marsh Posté le 16-07-2002 à 15:04:39    

Si non t'as des interface COM pour directement appeler les codec audio/vidéo et récupérer une ou plusieurs images


Message édité par LetoII le 16-07-2002 à 15:04:47

---------------
Le Tyran
Reply

Marsh Posté le 16-07-2002 à 15:26:48    

En fait, je crois que je vais faire l'autruche...
Car je ne sais pas du tout ce que sera la fenêtre à partir de laquelle je dois collecter les images... (et oui on vit dans un monde dur !!!  :cry: )
Comme mon petit prog fonctionne très bien avec des fenêtres classiques et des fenêtres avec de l'OpenGL, je vais considérer que ça suffit. Sinon... on verra bien...
Ceci dit, merci pour votre aide !

Reply

Marsh Posté le 16-07-2002 à 15:26:48   

Reply

Marsh Posté le 16-07-2002 à 15:30:07    

Si non tu doit pouvoir facilement lire la mémoir vidéo avec directx, tu compare avec les coordonnée de la zone client de ta fenêtre et c bon... Non?  :sweat:


---------------
Le Tyran
Reply

Marsh Posté le 16-07-2002 à 15:39:47    

Et bien pourquoi pas... mais il va encore falloir que je me mette à apprendre tout ça !
Pour le moment je vais m'amuser avec mon petit client/serveur, mon système de compression et améliorer l'interface de capture... et après je verrai pour directX.
Mais merci quand même pour l'idée !
Au fait, j'y pense juste à l'instant, ne serait-il pas possible d'aller taper dans le FrontBuffer directement avec de l'OpenGL à la place de DirectX car l'OpenGL je connais plus :)

Reply

Marsh Posté le 16-07-2002 à 15:51:38    

Ca doit pouvoir se faire. Faut chercher.


---------------
Le Tyran
Reply

Marsh Posté le 16-07-2002 à 16:04:56    

Dès que j'aurais un peu plus de temps je m'y mettrais et si j'arrive à quelque chose de potable, j'essayerai de vous le faire boire  :pt1cable: !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed