Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2796 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++][GDI+] Impossible de charger une image != .bmp depuis 1 ressource

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++][GDI+] Impossible de charger une image != .bmp depuis 1 ressource

n°810779
Jesus Army
Allez voir là bas si j'y suis
Posté le 30-07-2004 à 10:07:36  profilanswer
 

:hello:
 
*edit*
New problème avec cette classe: http://www.codeproject.com/vcpp/gd [...] bitmap.asp
Voir ce post plus bas : http://forum.hardware.fr/hardwaref [...] tm#t843590
Mercÿte. :jap:
 
 
--------------------
Acien premier post :
--------------------
 
J'utilise le GDI+ pour afficher mes images... Hors la documentation sur le sdk est un peu faible sur certains points et j'ai un petit problème... :/ Je n'arrive pas à charger une image dans un autre format qu'une bmp depuis une ressource ! :(
 
Voici ce que j'arrive à faire, et ensuite ce que je voudrais réussir à faire :

  • Charger une image depuis un fichier bmp ou tout autre format ca marche sans problème comme ca :
Code :
  1. _pBmpBackground = new Bitmap(L"bckgrnd.jpg" );


 

  • Charger une image bmp depuis une ressource, ca marche aussi quand je le fait de cette facon : (Mais en revanche ca ne marche pas pour un autre format de fichier ! :/ Si la ressource est une jpg/gif/png ou autre ca ne marche pas :/)
Code :
  1. _pBmpBackground = new Bitmap(_hInstance, (const WCHAR *)(MAKEINTRESOURCE(IDB_BCKGRND)));


 

  • Charger une image bmp ou autre format d'image depuis la methode "Fromresource" qui est normalement faite pour charger une image depuis une ressource ne marche pas quand j'essaye de cette manière :
Code :
  1. _pBmpBackground->FromResource(_hInstance, (const WCHAR *)(MAKEINTRESOURCE(IDB_BCKGRND)));


Et dans msdn je ne trouve aucune utilisation dans un exemple de la methode Fromresource, et on ne peut pas dire que la doc detaille enormement ce point... :/
 
Je précise que toutes ces instructions sont bien evidement précédées par :

Code :
  1. Bitmap* _pBmpBackground;


 
Si quelqu'un a une idée de comment je pourrais faire marcher cette satanée méthode ou du comment je pourrais faire pour charger autre chose qu'une bmp depuis une ressource ca m'aiderait bien... :)
 
Mercÿte :jap:


Message édité par Jesus Army le 06-09-2004 à 17:50:53
mood
Publicité
Posté le 30-07-2004 à 10:07:36  profilanswer
 

n°810851
Jesus Army
Allez voir là bas si j'y suis
Posté le 30-07-2004 à 10:47:53  profilanswer
 

Il n'y a pas grand chose à lire mais certaines fois je devrais apprendre à lire quand meme...
http://msdn.microsoft.com/library/ [...] source.asp

Citation :

Return Value
 
    This method returns a pointer to the new Bitmap object.


Beh en récuperant le pointeur retourné quand je mets une bitmap en ressource ca marche en fait... :ange: Je vais essayer avec une jpg maintenant... :ange:

n°810867
Jesus Army
Allez voir là bas si j'y suis
Posté le 30-07-2004 à 11:04:48  profilanswer
 

Bon beh pas mieux avec autre chose qu'une bmp... :'(

n°812739
Jesus Army
Allez voir là bas si j'y suis
Posté le 02-08-2004 à 14:58:04  profilanswer
 

[:yoyoz] :(

n°812757
Kristoph
Posté le 02-08-2004 à 15:18:15  profilanswer
 

Je ne suis vraiment pas un expert de ce sujet, mais les recherches que j'avais fait à l'époque montrait qu'il est impossible de faire ce que tu veux :D

n°812797
Jesus Army
Allez voir là bas si j'y suis
Posté le 02-08-2004 à 16:04:49  profilanswer
 

Je pense (j'espère :ange: :ange:) qu'il y a bien une solution quand meme... :(
 
Et à quoi servirait la methode FromResource alors ? :??: (puisque de toute facon on en a pas besoin pour ouvrir une bmp depuis une resource... [:spamafote])
 
Je garde espoir :) :D

n°813882
mynab
Posté le 03-08-2004 à 16:37:55  profilanswer
 
n°814515
Jesus Army
Allez voir là bas si j'y suis
Posté le 04-08-2004 à 10:10:52  profilanswer
 

:jap: je regarde ca mais en survolant rapidement je pige pas tout ce que fais le mec... :ange:

n°814946
mynab
Posté le 04-08-2004 à 15:05:44  profilanswer
 

C'est pas grave ca marche ;)
Recupere sa classe et voila.

n°814968
Jesus Army
Allez voir là bas si j'y suis
Posté le 04-08-2004 à 15:32:42  profilanswer
 

C'est qu'en fait je voudrais le faire avec des gif, donc faut voir si ca classe est spécifique aux jpg et png, ou si elle marche aussi avec d'autres formats... :ange: Et si ca amrche pas faudra essayer de tout comprendre pour l'adapter aux gif... :/


Message édité par Jesus Army le 04-08-2004 à 15:33:11
mood
Publicité
Posté le 04-08-2004 à 15:32:42  profilanswer
 

n°843590
Jesus Army
Allez voir là bas si j'y suis
Posté le 06-09-2004 à 17:46:05  profilanswer
 

Bon beh finalement (vivi je sais je remonte le topic mais c'est parceque j'avais repoussé cette partie dans le dev... :ange:) je n'y arrive pas avec cette classe... :/ Et pourtant je fais exactement comme il fait dans son prog de demo, et en plus avec ses images, et ca ne marche pas... :(
 
Je m'explique. Lui fait ca pour charger et afficher son image :

Code :
  1. CGdiPlusBitmapResource* pBitmap = new CGdiPlusBitmapResource;
  2. if (pBitmap->Load(_T("IDB_BAY" ), _T("PNG" )))
  3. {
  4. CClientDC dc(this);
  5. Gdiplus::Graphics graphics(dc);
  6. graphics.DrawImage(*pBitmap, 0, 0);
  7. delete pBitmap;
  8. }
  9. else
  10. {
  11. AfxMessageBox("Failure loading image" );
  12. }


Et moi avec ca, la fonction load n'y arrive pas :

Code :
  1. CGdiPlusBitmapResource* pBmpResTest = new CGdiPlusBitmapResource;
  2. if(pBmpResTest->Load(_T("IDB_BAY" ), _T("PNG" )))
  3. {
  4. Gdiplus::Graphics graphics(_hOffscreenDC);
  5. graphics.DrawImage(*pBmpResTest, 0, 0);
  6. }
  7. delete pBmpResTest;


Donc je dois merder quelque chose dans la mise en ressource je supute... Et comme je ne suis pas trop habitué à mettre autre chose que ce qui est proposé par defaut (bmp, icons...) je me dis que je le fais peut être mal... [:spamafote]
 
Pour rajouter cette image, j'ai été dans l'editeur de ressources de VC++.NET puis j'ai fait :

  • Add ressource
  • Import
  • Là je choisi ma PNG
  • En ressource type je met : "PNG" (sans les guillemets bien sur [:tinostar]
  • Je change le nom à IDB_BAY


Et pis vala c'est tout... [:spamafote]
Ca donne exactement le meme résultat que dans l'autre prog de demo de la classe qui marche, mais forcement il doit y avoir une différence quelque part puisque chez moi ca ne marche pas... :'(
 
Donc si vous voyez une erreure bête dans mon raisonnement ou vous avez une idée de comment charger une JPEG/GIF/PNG depuis une ressource avec le GDI+ je suis preneur. :)
 
Mercÿte. :jap:


Message édité par Jesus Army le 06-09-2004 à 17:46:49
n°843977
Jesus Army
Allez voir là bas si j'y suis
Posté le 07-09-2004 à 10:37:18  profilanswer
 

En fait je viens de regarder ce qu'il se passait dans la methode load(), et c'est la ressource qui n'est pas trouvée... :(
 

Code :
  1. HRSRC hResource = ::FindResource(hInst, pName, pType);


hResource reste non initialisée après ca... :/
 
Une idée ? :'(

n°844442
Jesus Army
Allez voir là bas si j'y suis
Posté le 07-09-2004 à 18:53:24  profilanswer
 

Bon beh pour ceux que ca interesse, suffit de bien rajouter la ressource (à ce propos l'editeur de VC++ est naze, je m'occupe de ca à la mimine avec ResourceHacker maintenant :)) et d'enlever les quotes autour de la constante de l'ID de la ressource. :)

n°845924
HelloWorld
Salut tout le monde!
Posté le 09-09-2004 à 14:13:30  profilanswer
 

Ah oui pas vu ton Load(_T("IDB_BAY" ).
Ca pouvait pas marcher. Utilise MAKEINTRESOURCE.
=> Load( MAKEINTRESOURCE(IDB_BAY), ...)
Que reproches-tu à l'éditeur de VC++ ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°845931
Jesus Army
Allez voir là bas si j'y suis
Posté le 09-09-2004 à 14:16:40  profilanswer
 

En fait ya justement pas besoin de la macro MAKEINTRESOURCE car c'est la classe qui s'en occupe. :) Mais effectivement maintenant ca marche donc c'est bon. :)
 
Ce que je reproche à l'editeur de resource de VC++ c'est que lorsque je veux ajouter une jpeg en ressource et que je l'import en ressource custom il se sent obligé de me la convertir en bitmap... :'( Enfin me suis fait une dll que je manage avec ressource hacker, c'est tout aussi bien voir mieux finalement car sinon l'executable aurait été un peu gros avec toutes les images... :)

n°846208
HelloWorld
Salut tout le monde!
Posté le 09-09-2004 à 17:31:35  profilanswer
 

Il me semble que seul le type Bitmap est supporté dans les ressources, et que LoadImage & co ne supportent que ça. As-tu ajouté ton jpg en tant que bitmap, ou l'as tu importé comme type de resource perso ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°846222
mynab
Posté le 09-09-2004 à 17:44:32  profilanswer
 

Hello,
 
moi je load des PNG via cette classe. Par contre quand tu les ajoutes dans tes ressources fais gaffe de bien mettre ca en type perso. Au hasard "PNG" pour tes PNG, "JPG" pour tes JPG... Normalement y'a pas absolument pas de conversion en bitmap et VC++ considere ca comme un fichier binaire. Fais bien attention de lui dire import custom resource un truc comme ca.
 
mynab
 

n°846236
Jesus Army
Allez voir là bas si j'y suis
Posté le 09-09-2004 à 18:07:26  profilanswer
 

Pour les PNG aucun problème, j'importe ca aussi en custom que je nomme aussi completement au hasard "PNG". (Marrant ca qu'on ait les meme idées, mais d'où cela peut-il bien venir ?? :D ;) :D) Par contre pour les JPEG, j'ai beau bien specifier que je ne veux pas importer une bitmap mais une ressource binaire quelconque, il se sent obligé de me l'inclure en la reconvertissant en bmp toute moche ! :/
 
Mais bon tant pite, resourcehacker me permet de contourner ce problème :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++][GDI+] Impossible de charger une image != .bmp depuis 1 ressource

 

Sujets relatifs
GD : appliquer une teinte à une imageForm avec image comme bouton
Récuperer les coordonnées d'un click sur une image,Impossible de lancer un script VB
[CSS] border d'une image-lien de couleur ?[CSS]Positionnement image.
[CSS] Image de fond dans une zone. Problème de compréhension[HTML] Tableau trop large et espace non voulu sous son image [Résolu]
[ACCESS] Impossible de mettre un combo box.Impossible de scroller une div qd une image se trouve en dessous ?
Plus de sujets relatifs à : [C++][GDI+] Impossible de charger une image != .bmp depuis 1 ressource


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR