Bmp -> jpeg (jpg) par librairie freeimage et dev-c++

Soyez le premier à donner votre avis sur cette source.

Vue 17 695 fois - Téléchargée 1 519 fois

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 / Exemple :


//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;
}

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Silince Messages postés 1 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 20 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és 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 3
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és 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
8 janv. 2007 à 19:44
Ben si SarkoLène nous lit on est mal, hi hi.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
8 janv. 2007 à 19:35
On est bien d'accord ^^.
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
8 janv. 2007 à 19:33
Le confort est aussi dans la liberté et la responsabilité, pas l'assistencialisme.
Afficher les 29 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.