[C++] Défilement d'images avec CreateProcess ou ShellExecute

Défilement d'images avec CreateProcess ou ShellExecute [C++] - C++ - Programmation

Marsh Posté le 14-03-2005 à 08:57:14    

Pour l'activité suivante, quelle serait pour vous la facon la plus portable (en environnement windows, mais avec des variantes type NT4/2000/XP) et relativement simple :
 
Un code génère une image, je souhaite l'afficher. L'image est modifiée plusieurs fois par seconde, et à chaque fois je voudrais que l'image soit affichée pour donner l'illusion d'une video.
 
Je n'ai qu'NT4 pour le moment, et il n'y a pas de viewer comme celui d'XP dispo, mais uniquement paint (mes images sont des bitmap)
 
J'utilise ShellExecute pour le moment, aucun problème niveau code, le seul problème est qu'il m'ouvre à chaque fois une autre instance de Paint.exe... Evidemment, si je double clic sur 2 BMP différents sur windows, il fera la même chose.. (donc sur qq minutes il m'ouvre 500 paint.exe, ce qui est assez ignoble lorsques tt est épuisé bien évidemment)
 
Donc à votre avis, mieux vaut ouvrir / fermer, ou trouver une autre méthode (mais je ne vois pas laquelle, ptet avec shellexecuteEx) ?
Pour le moment je ne fais que spécifier le nom du fichier à ouvrir et pas le prog à utiliser (pour pouvoir fonctionner sur plusieurs OS)
 
Vos idées ?
 

Reply

Marsh Posté le 14-03-2005 à 08:57:14   

Reply

Marsh Posté le 14-03-2005 à 09:04:12    

ouvrir une fenetre a toi et peindre l'image dedans. Sinon ca ira jamais assez vite pour donner l'impression d'une video, et en plus, ca sent la colle.
Une lib facile a utiliser pour du barbouillage : openPTC

Reply

Marsh Posté le 14-03-2005 à 09:10:01    

Barbouillage, "sent la colle", vous savez que vous parlez bizarrement vous les codeurs ?
Je vais regarder cette petite lib ;)
Au fait le fichier est à chaque fois créé en dur sur le disque, et les fichiers sont petits (compressés), 30/40 Ko, donc peut etre qu'avec le viewer d'XP (enfin previewer) ca fonctionnerait déjà mieux qu'avec Paint sur NT4 :)

Reply

Marsh Posté le 14-03-2005 à 09:16:30    

Je viens de voir que c'est plus une librairie graphique qu'une lib qui de lancement d'applis externes
Quand je dis "video", c'est du 5 fps à 10 maxi, c'est plus pour voir d'éventuelles choses défiler que pour avoir un effet sensationnel de réalité
Je vais essayer, mais ca me parait lourd pour l'utilisation (car la visu est temps réel est une chose), mais d'un autre coté je code un avi pour revisualiser la "video" en différé

Reply

Marsh Posté le 14-03-2005 à 09:27:01    

kowalski a écrit :

Barbouillage, "sent la colle", vous savez que vous parlez bizarrement vous les codeurs ?


non ca c'est moi :d
 

kowalski a écrit :


Je vais regarder cette petite lib ;)
Au fait le fichier est à chaque fois créé en dur sur le disque, et les fichiers sont petits (compressés), 30/40 Ko, donc peut etre qu'avec le viewer d'XP (enfin previewer) ca fonctionnerait déjà mieux qu'avec Paint sur NT4 :)


 
Bin en fait, ca me parait chelou d'utiliser paint (ou un autre prog de visu externe) pour fiare de la visualisation. T'as pas moyen d'avoir en ram une version decompressée de l'image (plutot que de la recharger du disque...)

Reply

Marsh Posté le 14-03-2005 à 09:32:05    

Si elle est présente, dans une matrice allouée dynamiquement
 
C'est juste que dans mon cas le framerate est super faible et c'est juste une feature additionnelle qui est fait n'est pas l'objectif premier de ce prog là... Je me rappelle à l'époque sur Pascal quand je bricolais avec le mode 13h, bah là évidemment ca sera simplifié par ta librairie, mais bon... De toutes facons je vais essayer et montrer ptet deux versions aux interressés...
 
Mais dans mon cas le prob de shellexecute c'est qu'il ouvre une autre fenetre à chaque fois, donc tu me conseille d'ouvrir une fenetre de conserver le handle et de le réutiliser ensuite, c'est ca j'imagine...
 
Je verrais bien quelle version plait le mieux :)

Reply

Marsh Posté le 14-03-2005 à 09:34:51    

Nan je te conseille soit d'ouvrir une fenetre windows avec les fonctions de l'api win32 qui vont bien (CreateWindow gnagna, si t'as deja une GUI dans ton prog ca serait ptet pas mal), mais vu que c'est superlourd et que t'as ptet ot chose a faire je pensais a OpenPTC qui te permet d'avoir une fenetre de dessin pour toi pour pas un rond. En fouillant les trefonds de ma mémoire jdois meme pouvoir me rapeller comment ca marche
 
 

Reply

Marsh Posté le 14-03-2005 à 09:37:48    

Pour le moment, pas de GUI, c'est de la console pure et dure :)

Reply

Marsh Posté le 15-03-2005 à 11:57:34    

Chris, j'essaie d'utiliser ton OpenPTC, mais je me pose une question, mes images font en gros 1 MP, et là j'ai l'impression que OpenPTC utilise le 13h et est limité en 320*200, tu peux confirmer comme tu l'as utilisé ?
 
Si effectivement c'est si limité, il va quand meme falloir que je passe par un editeur externe quitte à baisser le framerate pour mon mode temps réel

Reply

Marsh Posté le 15-03-2005 à 14:02:30    

oué je l'ai utilisé, et openPTC utilise directdraw :o
 
tu change la resolution dans la console  
 
Ca dvait etre :
 
 
Console.Open("coin",640,480,<un truc sur le format de pixel que je sais pu);
 
si tu veux du fenetré, soit tu compiles avec la lib "debug", soit tu regardes dans la doc, y'a des options pour la console pour qu'elle se lance en fenetré
 

Reply

Sujets relatifs:

Leave a Replay

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