Animer des images JPG

popi0016 Messages postés 24 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 21 janvier 2005 - 21 oct. 2004 à 02:06
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 21 oct. 2004 à 08:55
Posté le: Jeu Oct 21, 2004 0:56 Sujet du message: Animer des images JPG

--------------------------------------------------------------------------------

Salut a tous, voila je voudrais animer une serie d'image JPG. J'ai une solution, mais elle ne fonctionne qu'avec des images simples (petite taille, pas beaucoup de couleurs). Cette solution consiste à lancer un petit thread qui charge les fichiers desires dans une boucle for par l'intermediare de " Image->Picture->LoadFromFile( AnsiString ); " et ainsi ceci crée l'illusion d'un caroussel ou diaporama. Le code vous parlera + (a noter qu'il est lourd et a ne pas suivre... c'est un 1er jet rapide ...). Les fichiers charges sont nommes : centre_000 à centre centre_34. lpParam vaut 34 donc, pour la boucle for. On distingue le cas _00x du cas _0x0 ou x represente la base decimale.

// fonction lancée par le thread
DWORD WINAPI ThreadProc( LPVOID lpParam )
{
// boucle diaporama
for ( int i = 0; i < ( int ) lpParam; i++ ) {
// raz
asPath1 = "D:\\centre\\centre_0";
asPath2 = ".jpg";
asPath3 = "";
// préparer le nouveau chemin
if ( i < 10 ) { // distinguer _00x.jpg
asPath1 += "0";
asPath1 += i;
}
else // de _0x0.jpg
asPath1 += i;
asPath3 = asPath1 + asPath2;
// charger le nouveau fichier
Form1->Image1->Picture->LoadFromFile( asPath3 );
Sleep( 100 ); // temporiser
}
return 0;
}

... donc l'appli. charge bien les images toutes les 100 ms mais l'affichage n'est pas stable alors que l'image chargee ne differe que d'une ligne de pixels (20 à 50) par rapport a sa precedente. A la place d'un fondu d'images je me retrouve avec un defilement saccade... quelqu'un a t il une solution pour realiser ce diaporama plus simplement, merci :big) :big) :big)

1 réponse

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
21 oct. 2004 à 08:55
ca sert pas vraiment de temporisateur Sleep

et utilises un double buffer pour l'affichage
0
Rejoignez-nous