begin process at 2012 05 29 04:11:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Intégrer une image dans un programme [Dev-cpp]


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Intégrer une image dans un programme [Dev-cpp]

mercredi 1 juin 2005 à 21:13:32 | Intégrer une image dans un programme [Dev-cpp]

by_rabbit_08

Salut!!
Je me demandais si quelqu'un savait comment intégrer une image dans un exécutable, et pouvoir l'utiliser ensuite...
Est-ce que quelqu'un peut m'aider? merci!
by_rabbit_08

mercredi 1 juin 2005 à 21:38:12 | Re : Intégrer une image dans un programme [Dev-cpp]

thedestiny

Oui c'est possible d'intégrer une image dans les ressources.
Après pour l'utiliser, ca dépend ce que tu veux faire et la il y a 2 cas de figures :
1- Tu veux l'extraire de l'application
2- Tu veux l'afficher dans une fenêtre de ton programme

Donc il faudrait nous en dire un peu plus :)

Amicalement,
The Destiny
mercredi 1 juin 2005 à 21:41:31 | Re : Intégrer une image dans un programme [Dev-cpp]

by_rabbit_08

En fait c simple, j'aimerais afficher une image (comme dans le code ci-desous) que je prends non pas dans un dossier, mais qui se trouve dans l'EXE, par je ne sais quel moyen... Dit-moi si il faut plus d'indication...



//********************************
#include <windows.h>

LRESULT CALLBACK ProcedureDeFenetre (HWND,UINT,WPARAM,LPARAM); //prototype de la fonction de traitement des messages


int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hInstancePrecedente,PSTR LigneDeCommande,int ModeAffichage)
{
char NomProgramme[ ] = "xamax";
HWND Fenetre; //le type HWND définit un type HANDLE
MSG Message;
WNDCLASSEX ClasseFenetre;

ClasseFenetre.cbSize =sizeof(ClasseFenetre);
ClasseFenetre.style = CS_HREDRAW|CS_VREDRAW;
ClasseFenetre.lpfnWndProc =ProcedureDeFenetre;
ClasseFenetre.cbClsExtra =0;
ClasseFenetre.cbWndExtra =0;
ClasseFenetre.hInstance =hInstance;
ClasseFenetre.hIcon =LoadIcon(0,IDI_APPLICATION); //LoadIcon charge un identificateur d'icone
ClasseFenetre.hCursor =LoadCursor(0,IDC_ARROW); //LoadCursor charge un identificateur de curseur
ClasseFenetre.hbrBackground =CreateSolidBrush(RGB(255,255,255)); //définit le fond d'écran de la fenêtre
ClasseFenetre.lpszMenuName =0;
ClasseFenetre.lpszClassName =NomProgramme;
ClasseFenetre.hIconSm =LoadIcon(NULL,IDI_APPLICATION);

RegisterClassEx(&ClasseFenetre); //on enregistre la classe de la fenêtre

//CreateWindow va créer "visuellement" une fenetre qui utilisera la classe enregistree
Fenetre=CreateWindow(NomProgramme, //nom de la classe de fenetre
                                       "xamax", //titre de la fenêtre visible
                                       WS_OVERLAPPEDWINDOW, //style de la fenetre
                                       CW_USEDEFAULT, //emplacement x à l'appel
                                       CW_USEDEFAULT, //emplacement y à l'appel
                                       220, //taille sur l'axe x
                                       290, //taille sur l'axe y
                                       NULL,
                                       NULL, //handle du menu
                                       hInstance, //handle de l'instance (instance déclarée en haut)
                                       NULL); //paramètres supplementaires

ShowWindow(Fenetre,ModeAffichage);//afficher la fenêtre à l'écran
UpdateWindow(Fenetre);//mise à jour de la fenêtre

//Lecture d'un message dans la file d'attente
while(GetMessage(&Message,NULL,0,0))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}


LRESULT CALLBACK ProcedureDeFenetre(HWND fen,UINT msg,WPARAM wparam,LPARAM lparam)
{
switch(msg)
{
  HINSTANCE hInst; //déclaration d'une instance type à cette fonction de traitement des messages
 
  //déclaration de variables pour les images
  BITMAP         bm;
  PAINTSTRUCT    ps;
  HDC            hDC, hMemDC; 
  static HBITMAP hBitmap;
 
case WM_CREATE:
  hBitmap = LoadImage(hInst, //charge l'image dans l'instance déclarée sans la dessiner
  "xamax.bmp", //indique le nom du fichier, pourrait être du style "C:\\dossier\\xamax.bmp"
  IMAGE_BITMAP, //indique que c'est une image bitmap :P
  0, 0, //0,0 prends l'image sans la déformer
  LR_DEFAULTSIZE|LR_LOADFROMFILE); //charge l'image avec ses tailles de départs
break;

case WM_PAINT:
  hDC = BeginPaint(fen, &ps);
   
      //Affiche l'image
      DrawState(hDC,
                NULL,
                NULL,
                (LPARAM)hBitmap,
                0, 20, 10, 0, 0, //position de l'image
                DST_BITMAP);
      SetBkMode(hDC, TRANSPARENT); //peut aussi être opaque
      TextOut(hDC, 60, 235, "Aller Xamax!!! >_>!", 13);           


      DeleteDC(hMemDC);
      EndPaint(fen, &ps);
break;

case WM_DESTROY:
PostQuitMessage(0);//arret du programme
return 0;
}
return DefWindowProc(fen,msg,wparam,lparam);
}
//*************************************

mercredi 1 juin 2005 à 22:45:33 | Re : Intégrer une image dans un programme [Dev-cpp]

thedestiny

Réponse acceptée !
Bah si l'image se situe dans la ressource, il n'y a pas énormément de difficultés :)
C'est presque pareil sauf que à la place du répertoire, tu mets le nom de la ressource, exemple :

hBitmap = LoadImage(hInst, MAKEINTRESOURCE(MA_RESSOURCE), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION);

La le flag par contre est différence vu qu'il est charger à partir de la ressource :)
Par contre, il faut pas oublier dans le fichier *.rc de mettre : 
MA_RESSOURCE            BITMAP  DISCARDABLE     "bitmap.bmp"
ainsi que dans le fichier resource.h :
#define MA_RESSOURCE                     102
Par exemple :)

Ca fait une éternité que j'ai pas codé avec Dev-C++ mais ca devrait marcher :)

Amicalement,
The Destiny
mercredi 1 juin 2005 à 22:46:38 | Re : Intégrer une image dans un programme [Dev-cpp]
jeudi 24 septembre 2009 à 19:36:08 | Re : Intégrer une image dans un programme [Dev-cpp]

juju2612

dfergergeqg



Cette discussion est classée dans : programme, image, dev, cpp, intégrer


Répondre à ce message

Sujets en rapport avec ce message

Que fait Dev Cpp pour un prog win? [ par floindahouse1 ] Lorsque je crée un projet "programme windows" sous dev cpp, et que je remplace tout le main.cpp par:#...int main(){MessageBox(....)}lorsque je lance l ressources dev-cpp [ par deck_bsd ] Bonjour,Voila je veu mettre une image dans un controle static. Tout vas bien pour ce qui est des OBM (OBM_CHECK,...) tout s'affiche parfaitement. Le p afficher une image comme fond sous dev-cpp [ par sebastienmz ] bonjour j'ai essayer http://www.cppfrance.com/code.aspx?ID=16811 mais elle marche pas j'ai l'impression que le case WM_PAINT marche pas comment faire Acquisition d'image aved dev cpp [ par sultan_kafila ] the peace cannot be kept by forcebonjour tt le monde je suis en stage actuellement et je cherche un code source qui fait de l'acquisition d'image avec IMAGE_OPTIONAL_HEADER32 [ par kiki67100 ] Bonjour a tous, Voila j'ai trouvez un code http://rafb.net/p/CPapmn32.html mais dev c++ me fait un erreur 14 C:\Dev-Cpp\id.cpp `IMAGE_OPTIONAL_HEAD Dev Cpp et Vista ?!? [ par zut69 ] Bonsoir,Je programme en C sous dev-Cpp et Windows Vista. Pour pouvoir le faire, j'avais d'ailleurs dû faire quelques manipulations. Alors pour exécute SVP j'arrive pas à exécuter un programme en C avec Dev-Cpp [ par inforebhi ] Salut tout le monde....Je suis un débutant en C, et j'ai télécharger Dev-Cpp pour commencer mes premiers programmes en C, mais malheureusement j'ai pa GINAC et Dev-cpp [ par yvessimon ] Bonour, Je débute avec Dev-cpp. Est-il possible d'utiliser la ligrairie Gniac avec DEV-cpp ? Car à la compilatoion il y a toujours une erreur!. Sal programme de cryptage d'image en c++ [ par ami2008 ] Asalam,s'il vous plais je cherche un programme simple en en visual c++ 6.0 qui traite une image (filtrage ou segmentation...) puis il'affiche comme un Compiler un code c par dev_cpp [ par mechwalid ] Bonjour [^^youpi]: , j ai essayé de compiler ce petit code : #include #include int main (void) { printf("Hello world!\n"); system("pause");


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,076 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales