Purebasic et MNG

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Purebasic et MNG

Message par Thyphoon »

Bijour !

Est ce que parmis vous quelqu'un connaitrait un moyen simple de jouer les animations MNG avec purebasic ? (Je rappel que les fichiers MNG sont des PNG animés). vu qu'il y a un decodeur PNG intégré au purebasic n'y a t'il pas moyen de lire facilement les MNG image par image !
Merci d'avance
A+
Thy
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

PNG Et MNG sont libre de droit, il n'y a pas des dll sur le net pour les lire ?

D'ailleurs, ce sera bien davoir un meilleur support du format png dans pure (notamment au niveau de la transparence, pour moi, un png est comme une icônes mais dans pure, c'est pas le cas)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

j'ai trouvé une lib : http://www.libmng.com/
a téléchargé plus précisement ici =>http://prdownloads.sourceforge.net/libm ... e?download il y a des exemples comment utiliser la libs mais j'avoue que ça depasse mes simples competence ....mais je continuea essayer de comprendre comment utiliser cette lib!
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

tu peux mettre une image MNG a dispo ici, STP
si j'ai le temps, j'essayerais d'en sortir qlqchose de cette lib :wink:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

voilà 3 fichier
http://www.thyphoon.com/TMP/ball.mng
http://www.thyphoon.com/TMP/example3.mng
http://www.thyphoon.com/TMP/1942.mng

le 1er et le 2ème fonctionne j'en suis sur ...le 3ème (1942) est un peu exotic ...
si tu as besoin d'autre chose dit moi :wink: en tout cas merci car la seul chose que j'ai réussi avec la live c'est a faire des jolies plantage avec reboot a chaque fois lolllllllll
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Le Soldat Inconnu a écrit :tu peux mettre une image MNG a dispo ici, STP
si j'ai le temps, j'essayerais d'en sortir qlqchose de cette lib :wink:
Salut !

Je viens a tout hasard aux nouvelles :P j'ai fait des tests mais je n'arrive a rien ...sniff !!
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Utilise la libMNG !

Prends un DLL Viewer et fais un callfunction de ces fonctions pour les utiliser dans purebasic, tu devrais surement arriver à quelque chose !
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Progi1984 a écrit :Utilise la libMNG !

Prends un DLL Viewer et fais un callfunction de ces fonctions pour les utiliser dans purebasic, tu devrais surement arriver à quelque chose !
c'est ce que j'essaie de faire...mais il y a une quantité de fonction astronomique dans la lib en question... alors bien sur pour lire un mng je suppose qu'il n'y a pas besoin de toute mais ça fait pas mal de temps que je test et j'ai rien de probant.... :cry: mais j'ai pas dit mon dernier mot... :wink: j'ai remonté se sujet au cas ou quelqu'un aurait réussi mais bon ... je retourne a mes sources lollllll
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

je vais essayer je te tient au courant
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

:( j'avoue que si ça me donne quelques indications en plus...je ne sais pas trop comment m'y prendre. :(

Il y a avec les sources de libmng des exememples (enfin je crois que c'est bien ça) et dans
lm1009\libmng\contrib\gcc\sdl-mngplay
il y a mngplay.c qui a ressemble a ce que j'ai vu de plus simple comme player en "c" ...mais delà a le traduire je vais avoir du mal. c'est pas enorme comme programme mais au vu de mes connaissances en C je pense que je vais galérer donc je vais essayer mais si une ame généreuse veux me donner un coup de main ça sera avec plaisir lolllll :P
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Il y a des truc que je pige pas trop en C
voilà une fonction en C

Code : Tout sélectionner

mng_bool mymngopenstream(mng_handle mng)
{
	mngstuff	*mymng;;

	/* look up our stream struct */
        mymng = (mngstuff*)mng_get_userdata(mng);
	
	/* open the file */
	mymng->file = fopen(mymng->filename, "rb");
	If (mymng->file == NULL) {
		fprintf(stderr, "unable to open '%s'\n", mymng->filename);
		Return MNG_FALSE;
	}

	Return MNG_TRUE;
}
et voici comment je l'ai traduit ...

Code : Tout sélectionner

Procedure.b mymngopenstream(mng_handle mng)
    mngstuff=*mymng()
    *mymng()=mng_get_userdata(mng)
  mymng()\file=ReadFile(#PB_Any, NomFichier$) 
  Lof()
  ReadData(*Tampon, Lof()) 
  ProcedureReturn 1
  Else
  ProcedureReturn 0
  EndIf 
EndProcedure
ça vous parait correct ?
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

lollllll bon je fais un monologue mais c'est pas grave !
j'ai decouvert cette info :

Code : Tout sélectionner

La structure des fichiers au format MNG est fondamentalement identique à celle des fichiers PNG, différant seulement dans la signature (8A 4D 4E 47 0D 1A 0A en hexadécimal) et dans l'utilisation d?unités d?information discrètes fournissant une grande variété de dispositifs d'animation. Les images utilisées dans l'animation sont stockées dans le fichier MNG comme une encapsulation d?images au format PNG ou JNG
je me demande si on ne pourrait pas utiliser alors les fonctions
UsePNGImageDecoder() et CatchImage(#Image, MemoryAddress) il suffit juste de trouver comment lire l'entête du fichier pour savoir le nombre d'image et les infos de delay entre image etc... non ? ça serait plus simple que de traduire un code en C...(Car pour l'instant c'est tres loin de marcher)
Répondre