BMP -> JPEG (JPG) PAR LIBRAIRIE FREEIMAGE ET DEV-C++
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
29 janv. 2005 à 15:00
Silince
Messages postés1Date d'inscriptionmercredi 8 avril 2009StatutMembreDernière intervention20 août 2009
-
20 août 2009 à 15:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Silince
Messages postés1Date d'inscriptionmercredi 8 avril 2009StatutMembreDernière intervention20 août 2009 20 août 2009 à 15:37
He bien merci yoyo, je crois qu'a l'avenir je vais avoir du mal a me passer de tes
services.... J'avais justement besoin de ce genre de convertion.
Ca fait deux fois que tu m'aides pendant mon stage, mon ardoise s'agrandit...
DSL de raviver un post vieux de @ ans et demi.
Tcho
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 8 janv. 2007 à 20:07
Non Kirua pas de java. Mais c'est pas impossible que j'ai vu ça pour un autre langage.
YOYO, @+.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 8 janv. 2007 à 19:44
Ben si SarkoLène nous lit on est mal, hi hi.
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 8 janv. 2007 à 19:35
On est bien d'accord ^^.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 8 janv. 2007 à 19:33
Le confort est aussi dans la liberté et la responsabilité, pas l'assistencialisme.
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 8 janv. 2007 à 19:26
Tu faisais du java avant? Parce que dans ce langage effectivement, un système de "garbage collecting" (ramasse miettes) garde trace du nombre de variables qui "pointent" sur un objet, et lorsque plus personne ne sait ou l'objet est, il est détruit (automatiquement).
Ce n'est pas le cas en C++, et c'est un des choses qui lui confère sa puissance et sa vitesse ... mais un peu au détriment du confort immédiat du programmeur (quoique ... ;)).
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 8 janv. 2007 à 12:31
Merci pour l'éclaircissement BruNews !
YOYO, @+.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 8 janv. 2007 à 12:08
pointée, mais ça n'a pas de sens, qui le saurait ???
BYTE *p;
p = (BYTE*) 0x1000;
qui sera au courant de mon délire ? absolument personne.
Nimporte quelle variable contient une valeur, pointeur ou autre ce n'est qu'une façon de la regarder et de l'utiliser, pas pour autant que les zones mémoires se trouvant à ces valeurs seront affectées de qlq manière.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 8 janv. 2007 à 11:55
Ca y est le code source est modifié.
Je ne confonds pas le pointeur et ce qu'il pointe, mais je pensais qu'une zone mémoire qui n'est plus pointée du tout, était automatiquement libérée.
J'espère que je ne dit pas d'ânerie ! :(
En tous cas, maintenant le souci ne se pose avec "FreeImage_Unload(Image2);".
YOYO, @+.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 7 janv. 2007 à 20:34
yoyo > faut pas confondre le pointeur (les 4 octets referençant l'adresse) et la zone mémoire pointée par ce pointeur.
Le pointeur local à la func disparait bien puisque ce n'est qu'un offset de ESP mais la zone mémoire ne sera jamais libérée si personne n'apelle le gestionnaire mémoire du système.
CChargy
Messages postés126Date d'inscriptionsamedi 24 avril 2004StatutMembreDernière intervention 6 janvier 2008 7 janv. 2007 à 20:31
Hello,
Pour répondre à ta question, si le pointeur est détruit mais la variable sur quoi il pointe lui n'est pas automatiquement détruit.
Et en l'occurence pour FreeImage, pour détruire une image (variable impossante ne mémoire et qui expliquerait la fuite de mémoire, mais pourquoi elle n'existe plus après redimmentionnement de la fenètre, sa c'est un mistère).
Heureusement, FreeImage nous donne cette fonction :
FreeImage_Unload(Image2);
Voila si tu as encore besoin d'aide ...
Colin CHARGY
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 7 janv. 2007 à 20:25
Merci CChargy et merci BruNews pour avoir confirmé !
Je vais modifier cela. Par contre, une petite question, un pointeur n'est pas détruit à la fin de la fonction ???
YOYO, @+.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 7 janv. 2007 à 19:44
Me semble effectivement que Image2 sera le résultat d'une alloc de la part de la lib FreeImage, auquel cas il faut appeler la désalloc.
CChargy
Messages postés126Date d'inscriptionsamedi 24 avril 2004StatutMembreDernière intervention 6 janvier 2008 7 janv. 2007 à 14:24
Heu en parlant de la mémoire, tu créer FIBITMAP * Image, * Image2;
et tu ne détruit que FreeImage_Unload(Image);. Donc voila je pense que c'est l'Image2 qui prend de la place. Et comme c'est un pointeur, elle n'est pas détruite a la fin de la fonction ...
Voila
Colin CHARGY
cs_breton51
Messages postés78Date d'inscriptionjeudi 21 avril 2005StatutMembreDernière intervention15 novembre 2018 20 févr. 2006 à 14:46
merci pour ta reponce
effectivement ca marche bien la memoir est bien libérer
je vais chercher dans ce sens une solution qui permetrai de reduir la fenetre principal lors de l'affichage de la fenetre de validation et qui réaficherai la première ensuite.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 20 févr. 2006 à 14:18
J'ai regardé le programme et franchement je vois pas comment faire.
Ya bien un moyen de libérer de la mémoire mais ça va sûrement pas te convenir.
C'est de réduire ta fenêtre, tu verras ça marche nickel.
YOYO, @+.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 20 févr. 2006 à 12:02
Alors là tu m'en poses une belle. J'y jette un oeil et je te tiens au courant.
YOYO, @+.
cs_breton51
Messages postés78Date d'inscriptionjeudi 21 avril 2005StatutMembreDernière intervention15 novembre 2018 20 févr. 2006 à 11:58
bonjour
merci pour ta source elle marche très bien la convertion en jpg est impecable.
cependant j'ai un petit pb de memoire je m'expique
1 je lance l'apli mémoir util. dans gestionnaire 2012ko
2 j'appui sur convertir mémoir util. 6836ko
3 je valide la convertion mémoir util. 4544ko
4 je rappui sur convertir mémoir util. 9208ko
5 je revalide memoir util. 6904ko
ex.........
saurais tu de quoi ça vien car la je ne comprend
j'ai essayer avec ton exe et en recompilant avec devcpp idem.
j'ai aussi essayer la source
http://www.cppfrance.com/codes/BMP2JPG_28263.aspx avec quelque modif pour pouvoir faire tourner le pg en boucle
même pb
merci d'avance.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 15 déc. 2005 à 20:02
Le principe de base c'est d'inclure la librairie dans les options du compilateur, et de bien mettre <freeimage.h> dans ton programme.
Normalement dans ce cas là, la compilation doit se passer sans pb.
YOYO, @+.
TinkerBell2
Messages postés1Date d'inscriptionjeudi 15 décembre 2005StatutMembreDernière intervention15 décembre 2005 15 déc. 2005 à 15:38
Bonjour,
j'ai beaucoup de mal à intégrer FreeImage à mon projet (en visual C++ v6) et pourtant j'ai absolument besoin de l'utiliser... J'ai tout essayé... Pas facile de débuter ! Est ce que quelqu'un serait assez aimable pour me détailler la marche à suivre ? Ca serait adorable ! Merci d'avance.
M (désespérée...)
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 19 févr. 2005 à 00:29
Je sais bien Brunews, mais c'est quand même frustrant qu'un petit c.. vienne te mettre une sale note après avoir passer plusieurs heures sur un truc.
En tout cas merci encore pour tout ce que tu fais.
YOYO, @+.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 18 févr. 2005 à 23:27
Désolé mais il y a affluence de tarés en ce moment et je ne peux pas passer la journée à leur courir après.
Rassure toi, ce n'est les notes qui feront ta valeur, le mieux est de les ignorer.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 18 févr. 2005 à 22:50
Quand vous mettez des sales notes mettez au moins un commentaire.
Ca serait bien que BruNews change ça.
Mettre un commentaire pour pouvoir mettre une note.
Sinon ya des petits malins qui s'amusent à mettre des caisses.
YOYO, @+.
cs_Boing
Messages postés15Date d'inscriptionmardi 3 août 2004StatutMembreDernière intervention 3 janvier 2007 1 févr. 2005 à 09:16
Hello,
GDI+ est une API graphique fournie en standard avec XP et Server 2003 (elle est dispo en redist pour 98, Me et 2000).
Elle gère les fichiers JPG, TIFF, PNG, l'alpha-blending, l'antialiasing, certaines transformations géométriques et certaines transformations dans l'espace de couleur.
Ce n'est pas forcément le top du top, mais par rapport à GDI c'est super pratique.
Voilà en gros.
a+
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 30 janv. 2005 à 13:14
GDI +, c'est quoi ?
Ca m'intéresse. Si tu pouvais m'en dire plus Boing.
YOYO, @+.
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 30 janv. 2005 à 12:48
Peut-être justement parce qu'il ne veut pas rester bloqué sous windows ;)
cs_Boing
Messages postés15Date d'inscriptionmardi 3 août 2004StatutMembreDernière intervention 3 janvier 2007 30 janv. 2005 à 12:30
En étant sous Windows, pourquoi ne pas utiliser simplement GDI + pour cela ?
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 29 janv. 2005 à 16:00
Merci pour l'info, je savais pas.
YOYO, @+.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 29 janv. 2005 à 15:00
Inutile de décomposer wParam pour tester un clic bouton, BN_CLICKED = 0 !!!
if(wParam == 1) suffira.
20 août 2009 à 15:37
services.... J'avais justement besoin de ce genre de convertion.
Ca fait deux fois que tu m'aides pendant mon stage, mon ardoise s'agrandit...
DSL de raviver un post vieux de @ ans et demi.
Tcho
8 janv. 2007 à 20:07
YOYO, @+.
8 janv. 2007 à 19:44
8 janv. 2007 à 19:35
8 janv. 2007 à 19:33
8 janv. 2007 à 19:26
Ce n'est pas le cas en C++, et c'est un des choses qui lui confère sa puissance et sa vitesse ... mais un peu au détriment du confort immédiat du programmeur (quoique ... ;)).
8 janv. 2007 à 12:31
YOYO, @+.
8 janv. 2007 à 12:08
BYTE *p;
p = (BYTE*) 0x1000;
qui sera au courant de mon délire ? absolument personne.
Nimporte quelle variable contient une valeur, pointeur ou autre ce n'est qu'une façon de la regarder et de l'utiliser, pas pour autant que les zones mémoires se trouvant à ces valeurs seront affectées de qlq manière.
8 janv. 2007 à 11:55
Je ne confonds pas le pointeur et ce qu'il pointe, mais je pensais qu'une zone mémoire qui n'est plus pointée du tout, était automatiquement libérée.
J'espère que je ne dit pas d'ânerie ! :(
En tous cas, maintenant le souci ne se pose avec "FreeImage_Unload(Image2);".
YOYO, @+.
7 janv. 2007 à 20:34
Le pointeur local à la func disparait bien puisque ce n'est qu'un offset de ESP mais la zone mémoire ne sera jamais libérée si personne n'apelle le gestionnaire mémoire du système.
7 janv. 2007 à 20:31
Pour répondre à ta question, si le pointeur est détruit mais la variable sur quoi il pointe lui n'est pas automatiquement détruit.
Et en l'occurence pour FreeImage, pour détruire une image (variable impossante ne mémoire et qui expliquerait la fuite de mémoire, mais pourquoi elle n'existe plus après redimmentionnement de la fenètre, sa c'est un mistère).
Heureusement, FreeImage nous donne cette fonction :
FreeImage_Unload(Image2);
Voila si tu as encore besoin d'aide ...
Colin CHARGY
7 janv. 2007 à 20:25
Je vais modifier cela. Par contre, une petite question, un pointeur n'est pas détruit à la fin de la fonction ???
YOYO, @+.
7 janv. 2007 à 19:44
7 janv. 2007 à 14:24
et tu ne détruit que FreeImage_Unload(Image);. Donc voila je pense que c'est l'Image2 qui prend de la place. Et comme c'est un pointeur, elle n'est pas détruite a la fin de la fonction ...
Voila
Colin CHARGY
20 févr. 2006 à 14:46
effectivement ca marche bien la memoir est bien libérer
je vais chercher dans ce sens une solution qui permetrai de reduir la fenetre principal lors de l'affichage de la fenetre de validation et qui réaficherai la première ensuite.
20 févr. 2006 à 14:18
Ya bien un moyen de libérer de la mémoire mais ça va sûrement pas te convenir.
C'est de réduire ta fenêtre, tu verras ça marche nickel.
YOYO, @+.
20 févr. 2006 à 12:02
YOYO, @+.
20 févr. 2006 à 11:58
merci pour ta source elle marche très bien la convertion en jpg est impecable.
cependant j'ai un petit pb de memoire je m'expique
1 je lance l'apli mémoir util. dans gestionnaire 2012ko
2 j'appui sur convertir mémoir util. 6836ko
3 je valide la convertion mémoir util. 4544ko
4 je rappui sur convertir mémoir util. 9208ko
5 je revalide memoir util. 6904ko
ex.........
saurais tu de quoi ça vien car la je ne comprend
j'ai essayer avec ton exe et en recompilant avec devcpp idem.
j'ai aussi essayer la source
http://www.cppfrance.com/codes/BMP2JPG_28263.aspx
avec quelque modif pour pouvoir faire tourner le pg en boucle
même pb
merci d'avance.
15 déc. 2005 à 20:02
Normalement dans ce cas là, la compilation doit se passer sans pb.
YOYO, @+.
15 déc. 2005 à 15:38
j'ai beaucoup de mal à intégrer FreeImage à mon projet (en visual C++ v6) et pourtant j'ai absolument besoin de l'utiliser... J'ai tout essayé... Pas facile de débuter ! Est ce que quelqu'un serait assez aimable pour me détailler la marche à suivre ? Ca serait adorable ! Merci d'avance.
M (désespérée...)
19 févr. 2005 à 00:29
En tout cas merci encore pour tout ce que tu fais.
YOYO, @+.
18 févr. 2005 à 23:27
Rassure toi, ce n'est les notes qui feront ta valeur, le mieux est de les ignorer.
18 févr. 2005 à 22:50
Ca serait bien que BruNews change ça.
Mettre un commentaire pour pouvoir mettre une note.
Sinon ya des petits malins qui s'amusent à mettre des caisses.
YOYO, @+.
1 févr. 2005 à 09:16
GDI+ est une API graphique fournie en standard avec XP et Server 2003 (elle est dispo en redist pour 98, Me et 2000).
Elle gère les fichiers JPG, TIFF, PNG, l'alpha-blending, l'antialiasing, certaines transformations géométriques et certaines transformations dans l'espace de couleur.
Ce n'est pas forcément le top du top, mais par rapport à GDI c'est super pratique.
Voilà en gros.
a+
30 janv. 2005 à 13:14
Ca m'intéresse. Si tu pouvais m'en dire plus Boing.
YOYO, @+.
30 janv. 2005 à 12:48
30 janv. 2005 à 12:30
29 janv. 2005 à 16:00
YOYO, @+.
29 janv. 2005 à 15:00
if(wParam == 1) suffira.