Accueil > > > BMP -> JPEG (JPG) PAR LIBRAIRIE FREEIMAGE ET DEV-C++
BMP -> JPEG (JPG) PAR LIBRAIRIE FREEIMAGE ET DEV-C++
Information sur la source
Description
Comme j'avais mis du temps à trouver comment et un peu de mal à trouver les fichiers nécessaires à la compilation pour faire cette conversion, je me suis dit, je vais la proposer. Pour ce qui est du code, je crois que tout est dans le titre, il convertit un BMP à préciser dans le code en un JPEG (JPG) dans le même dossier que l'exe sous le nom "Image.jpg". Cette source utilise la célèbre librairie FreeImage. Le ZIP contient tous les fichiers nécessaires à la compilation et au bon fonctionnement sous Dev-C++ (FreeImage.h, libfreeimage.a et FreeImage.dll). Voilà j'espère que ça vous plaira. Oubliez pas de mettre un petit commentaire avec un note ça sera sympa.
Source
- //NE PAS OUBLIER DE METTRE LA DLL DANS LE MEME DOSSIER QUE l'EXE
-
- #include <windows.h>
- #include <freeimage.h>
-
- LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
-
- char szClassName[] = "WindowsApp";
- HWND FenetrehWnd, BoutonhWnd;
-
- int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
- {
- MSG messages;
- WNDCLASSEX wincl;
-
- wincl.hInstance = hThisInstance;
- wincl.lpszClassName = szClassName;
- wincl.lpfnWndProc = WindowProcedure;
- wincl.style = CS_DBLCLKS;
- wincl.cbSize = sizeof (WNDCLASSEX);
- wincl.hIcon = LoadIcon (NULL, "A");
- wincl.hIconSm = LoadIcon (NULL, "A");
- wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
- wincl.lpszMenuName = NULL;
- wincl.cbClsExtra = 0;
- wincl.cbWndExtra = 0;
- wincl.hbrBackground = (HBRUSH)(COLOR_3DFACE+1);
-
- if (!RegisterClassEx (&wincl)) return 0;
-
- FenetrehWnd = CreateWindowEx(0, szClassName, "Pour choisir le bitmap à modifier, modifier le code !", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 544, 375, HWND_DESKTOP, NULL, hThisInstance, NULL);
- BoutonhWnd = CreateWindowEx(0, "BUTTON", "Convertir", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 50, 50, 100, 50, FenetrehWnd, (HMENU)1, hThisInstance, NULL);
-
- ShowWindow (FenetrehWnd, nFunsterStil);
-
- while (GetMessage (&messages, NULL, 0, 0))
- {
- TranslateMessage(&messages);
- DispatchMessage(&messages);
- }
- return messages.wParam;
- }
-
- LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
- {
- switch (message)
- {
- case WM_COMMAND:
- if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == 1)
- {
- FIBITMAP * Image, * Image2;
- FreeImage_Initialise(false);
-
- // ICI POUR MODIFIER LE NOM DU FICHIER A CONVERTIR
- //EX : "C:\\Mes Documents\\Image.bmp"
-
- Image = FreeImage_Load(FIF_BMP, "Nouveau Image bitmap.bmp", 0);
- Image2 = FreeImage_ConvertTo24Bits(Image);
-
- //Le fichier sera créé dans le dossier où se trouve l'exécutable sous le nom Image.jpg
-
- if (FreeImage_Save(FIF_JPEG, Image2, "Image.jpg", JPEG_QUALITYGOOD)) MessageBox(FenetrehWnd, "Conversion réalisée avec succès !", "Bravo !", MB_ICONINFORMATION);
- else MessageBox(FenetrehWnd, "Echec de la conversion !", "Echec !", MB_ICONEXCLAMATION);
- FreeImage_Unload(Image);
- FreeImage_Unload(Image2);
- FreeImage_DeInitialise();
- }
- break;
- case WM_DESTROY:
- PostQuitMessage (0);
- break;
- default:
- return DefWindowProc (hwnd, message, wParam, lParam);
- }
- return 0;
- }
//NE PAS OUBLIER DE METTRE LA DLL DANS LE MEME DOSSIER QUE l'EXE
#include <windows.h>
#include <freeimage.h>
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
char szClassName[] = "WindowsApp";
HWND FenetrehWnd, BoutonhWnd;
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
{
MSG messages;
WNDCLASSEX wincl;
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof (WNDCLASSEX);
wincl.hIcon = LoadIcon (NULL, "A");
wincl.hIconSm = LoadIcon (NULL, "A");
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;
wincl.hbrBackground = (HBRUSH)(COLOR_3DFACE+1);
if (!RegisterClassEx (&wincl)) return 0;
FenetrehWnd = CreateWindowEx(0, szClassName, "Pour choisir le bitmap à modifier, modifier le code !", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 544, 375, HWND_DESKTOP, NULL, hThisInstance, NULL);
BoutonhWnd = CreateWindowEx(0, "BUTTON", "Convertir", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 50, 50, 100, 50, FenetrehWnd, (HMENU)1, hThisInstance, NULL);
ShowWindow (FenetrehWnd, nFunsterStil);
while (GetMessage (&messages, NULL, 0, 0))
{
TranslateMessage(&messages);
DispatchMessage(&messages);
}
return messages.wParam;
}
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_COMMAND:
if(HIWORD(wParam) == BN_CLICKED && LOWORD(wParam) == 1)
{
FIBITMAP * Image, * Image2;
FreeImage_Initialise(false);
// ICI POUR MODIFIER LE NOM DU FICHIER A CONVERTIR
//EX : "C:\\Mes Documents\\Image.bmp"
Image = FreeImage_Load(FIF_BMP, "Nouveau Image bitmap.bmp", 0);
Image2 = FreeImage_ConvertTo24Bits(Image);
//Le fichier sera créé dans le dossier où se trouve l'exécutable sous le nom Image.jpg
if (FreeImage_Save(FIF_JPEG, Image2, "Image.jpg", JPEG_QUALITYGOOD)) MessageBox(FenetrehWnd, "Conversion réalisée avec succès !", "Bravo !", MB_ICONINFORMATION);
else MessageBox(FenetrehWnd, "Echec de la conversion !", "Echec !", MB_ICONEXCLAMATION);
FreeImage_Unload(Image);
FreeImage_Unload(Image2);
FreeImage_DeInitialise();
}
break;
case WM_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
Historique
- 26 août 2006 18:21:29 :
- - Ajout du style XP
- 30 août 2006 09:51:39 :
- Exexecutable à renommer de FreeImage.ex_ à FreeImage.exe.
- 08 janvier 2007 10:54:09 :
- Libération de la mémoire allouée pour Image2 avec "FreeImage_Unload(Image2);".
- 08 janvier 2007 10:56:28 :
- Libération de la mémoire allouée pour Image2 avec "FreeImage_Unload(Image2);".
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
BMP to JPEG [ par lektrosonic ]
Bonjour, Enfait je souhaite envoyer des HBITMAP en reseaux. L'ideal est biensur de transofrmer en JPEG avant d'envoyer. Mais je ne veux pas ecrire le
Convertir un .bmp en jpg/gif/png [ par AMS010 ]
Bonjour, J'ai fait il y'a quelques temps un programme qui fait des captures d'écran à intervalles de temps réguliers et qui les enregistre dans un fic
Adapter taile d'un CButton a Bitmap [ par Nixeus ]
Bonjour a tous,J'utilise cette méthode a fin de mettre un bitmap sur un CButton, HBITMAP m_bmp; HINSTANCE resource; resource = AfxGetResourceHandle();
PCL & RASTER [ par pipocodesrc ]
Bonjour à tous, j'aimerai savoir si il existe un exemple en C/C++/Java/.. pour ceonvertir une image(EMF/BMP/JPEG..) en PCL (raster) puis l'envoyer ver
redimenssion image avec hbitmap [ par glipper ]
bonjour,j'ai reussi à charger une image depuis un fichier, et la faire apparaître dans un boutons (dans une dialogbox). J'ai donc procédé comme ceci :
Charger dynamiquement BMP dans un "PICTURE" [ par Nixeus ]
Bonjour a tous !Je développe une mfc.Je viens de positionner un controle "PICTURE" sur ma boite de dialogue.Je souhaiterais qu'en fonction de certaine
transformer le fichier .dcm en jpeg ou bmp [ par jaouaditm ]
salutavez vous un code en c ou c++ qui permet de transformer l'image .dcm en .bmp ou .jpegmerci et bien à vous<table id="HB_Mail_Container" height="10
fichier image (bmp, jpg) à convertir en fichier txt [ par develdelphi ]
Bonjour,Je cherche un code pouvant représenter un fichier image N/B en fichier texte. C'est un sujet sur les traitements d'images assez difficile je r
Fonctions de FreeImages [ par squellettor ]
Bonjour,Je suis entrain de découvrir coment marche la librarie FreeImage, mais certaine fonction ne marche pas :La fonction de resize me ren
Conversion Jpeg BMP pour C++ Builder 4 [ par ygor ]
Voila , comme le dit le topic je desirerai savoir comment convertir une image jpg en bmp avec c ++ builder je ne sai pas torp utilisé Tbitmap, T
|
Derniers Blogs
ARTICLE DANS PROGRAMMEZ SUR LES PRINCIPES SOLIDARTICLE DANS PROGRAMMEZ SUR LES PRINCIPES SOLID par fathi
Hello tout le monde! J'ai pas pu blogger ces derniers temps car j'ai eu un (heureux) petit chamboulement dans ma vie perso (un "bug" de 3.8 kg et de 52 cm) J'en profite juste pour vous annoncer la parution d'un article sur les principes SOLID ...
Cliquez pour lire la suite de l'article par fathi PARUTION DE MON LIVRE SUR WPF 4PARUTION DE MON LIVRE SUR WPF 4 par odewit
La 2e édition de mon livre sur WPF sort aujourd'hui en version numérique et lundi en version papier :-)
L'ouvrage présente de façon approfondie les fonctionnalités de WPF 4 : graphisme 2D et 3D, animation, multimédia, interfaces utilisateur, databind...
Cliquez pour lire la suite de l'article par odewit EDM : COMMENT UTILISER L'HORIZONTAL ENTITY SPLITTINGEDM : COMMENT UTILISER L'HORIZONTAL ENTITY SPLITTING par Matthieu MEZIL
Une des raisons pour lesquelles j'adore l'Entity Framework est la puissance de son mapping. Beaucoup de développeurs pour ne pas dire la plus part n'en n'ont pas conscience. Pour rappel, j'ai réalisé des videos (en anglais) sur le mapping . Certains scena...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WP7DEV][REACTIVE] RENDRE LES REACTIVE EXTENSIONS PLUS STABLES[WP7DEV][REACTIVE] RENDRE LES REACTIVE EXTENSIONS PLUS STABLES par jay
Lorsque l'on développe des applications .NET, les exceptions non gérées dans des threads ont le désagréable effet de terminer le processus courant.
Dans l'exemple suivant.......(read more) ...
Cliquez pour lire la suite de l'article par jay
Forum
DE L'AIIIDE!!DE L'AIIIDE!! par eliramomo
Cliquez pour lire la suite par eliramomo
Logiciels
Microsoft Office (2010)MICROSOFT OFFICE (2010)Microsoft Office 2010 offre de nouveaux moyens flexibles et puissants pour optimiser votre travai... Cliquez pour télécharger Microsoft Office SeaMonkey (2.0.7)SEAMONKEY (2.0.7)Le projet SeaMonkey est issu d'un effort communautaire pour developper une application tout en un... Cliquez pour télécharger SeaMonkey Safari (5.0.2)SAFARI (5.0.2)Le navigateur d'Apple a lui aussi été mis à jour, aussi bien dans sa mouture Windows que celle po... Cliquez pour télécharger Safari Mozilla FireFox (4.0 béta 5)MOZILLA FIREFOX (4.0 BéTA 5)Firefox 4.0 béta 5
L'une des nouveautés visibles les plus attendues réside sans doute dans l'a... Cliquez pour télécharger Mozilla FireFox Mozilla Firefox (3.6.9)MOZILLA FIREFOX (3.6.9)Firefox 3.6.9 corrige les problèmes suivants :
* Introduced support for the X-FRAME-OPTION... Cliquez pour télécharger Mozilla Firefox
|