GIF + TBitmap

Signaler
Messages postés
25
Date d'inscription
jeudi 9 septembre 2004
Statut
Membre
Dernière intervention
31 octobre 2012
-
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
-
Bonjours a tous,

Je suis désespéré. Je recherche a afficher un GIF tout cul sur une simple form.. J'ai tout essayé, winimage, cximage, bmpgif et plein dautres, mais toutes me donnes des erreurs différentes. J'aimerais simplement afficher un GIF dans une TBitmap sous borland C++ Builder...

est-ce que quelqu'un pourrait me sauver ^^

3 réponses

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
23
Si borland accepte Gdiplus.lib (gdi de dotNet), il suffit de déclarer un
Image img(L"image.gif");
Graphics gr(HDC_DU_CONTROLE_TBITMAP);
gr.DrawImage(...);

// avec gestion des frames selon temps
// Attention : initialisation spéciale de gdi+

// sinon utiliser ATL
// atlimage.h (avec CImage qui supporte les gif)
// ceci dit je n'utilise pas borland
Messages postés
25
Date d'inscription
jeudi 9 septembre 2004
Statut
Membre
Dernière intervention
31 octobre 2012

Hello,

je te remercie pour ta réponse. Je suis allé me renseigné sur ce GDI+ mais malheureusement il me donne des erreurs de compilation. Je me suis fier a cette page web : http://www.leunen.com/cbuilder/gdiplus.html

Il me sort tout un tas d'erreur de complilation tel que : lieur error : unresolved GdiPlusShutdown ...... etc

Est-ce que je fais quelque chose de faux ?

Voici mon code :

//---------------------------------------------------------------------------




#define STRICT
#include <windows.h>
#include
using std::min;
using std::max;
#include <gdiplus.h>


#include <vcl.h>


#pragma hdrstop


#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);


        Gdiplus::Graphics graphics(hdc); //Handle to the device context
        Load the image from a file
        Gdiplus::Image image(L"c:\sample.gif");
        graphics.DrawImage(&image, 0, 0, image.GetWidth(), image.GetHeight());




}
//---------------------------------------------------------------------------




__fastcall TForm1::~TForm1()
{


        //shutdown GDI+
        Gdiplus::GdiplusShutdown(gdiplusToken);




}
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
23
Hello,
L'erreur que tu dis est que ton linkeur ne trouve pas gdiplus.lib.
J'imagine que borland ne réagit pas comme visual mais dans le code d'init, il te manque peut être quelquechose.
Voici les étapes principales (toujours utiliser UNICODE)

#define UNICODE
#include <windows.h>


// init GDI+


#include <gdiplus.h>
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")

// dans WinMain()
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

// fin
GdiplusShutdown(gdiplusToken);

Désolé de ne pas t'en dire plus.