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

Soyez le premier à donner votre avis sur cette source.

Vue 17 138 fois - Téléchargée 1 485 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
Messages postés
1
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
20 août 2009

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
Messages postés
1403
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
11 janvier 2009
3
Non Kirua pas de java. Mais c'est pas impossible que j'ai vu ça pour un autre langage.

YOYO, @+.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
Ben si SarkoLène nous lit on est mal, hi hi.
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

On est bien d'accord ^^.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
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.