IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

C++Builder et GraphicEX-Master


Sujet :

C++Builder

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2009
    Messages : 55
    Points : 41
    Points
    41
    Par défaut C++Builder et GraphicEX-Master
    Bonjour,

    Désirant profiter de GraphicEX pour charger divers formats d'images,
    j'ai donc charger l'ancienne version appelée GraphicEX tout court,
    même en Delphi, il manquait toujours un truc.
    Donc j'ai trouvé la dernière version: GraphicEX-Master.
    -
    Malgré pas mal de temps à essayer d'utiliser cette librairie:
    1) Elle fonctionne parfaitement avec Delphi.
    2)Mais casse tête avec C++Builder Rio, vu qu'elle n'a pas d’installateur...
    -
    J'ai donc essayé de mettre directement tous les fichiers se trouvant dans GraphEX
    dans la racine du répertoire de mon programme d'essai.
    J'ai ensuite ajouté les unités ".pas".
    -
    Mais maintenant il me réclame les ".obj", qui évidemment ne sont pas fournis
    (Hormis ceux de la Zlib qui eux sont fournis)
    -
    Pas moyens de les créer.

    Si quelqu'un connais la procédure pour me sortir de ce pétrin,
    je le remercierais avec joie.
    @ bientôt peut-être...
    luiso

  2. #2
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut,
    tu trouvera ci-joint le projet pour cette Library
    cdlt
    Fichiers attachés Fichiers attachés
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2009
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Bonjour et merci à DJ..
    La première étape est franchie.
    La 2ème:
    J'ai créé un petit bout d'essai qui ouvre bien le fichiers en TGA et autres.
    Mais en sauvegarde il ne fait que JPG et BMP
    Il est pourtant indiqué que GraphEX sauvegarde aussi en TGA PNG etc. !!!!
    J'envois l'exemple commenté pour savoir ou je me trompe.
    Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    //1
    //---------------------------------------------------------------------------
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <System.Classes.hpp>
    #include <Vcl.Controls.hpp>
    #include <Vcl.StdCtrls.hpp>
    #include <Vcl.Forms.hpp>
    #include <Vcl.ExtCtrls.hpp>
    #include <Vcl.Dialogs.hpp>
    #include <Vcl.ExtDlgs.hpp>
    #include <GraphicEx.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// Composants gérés par l'EDI
    	TButton *Button1;
    	TButton *Button2;
    	TImage *Image1;
    	TSavePictureDialog *SavePictureDialog1;
    	TOpenPictureDialog *OpenPictureDialog1;
    	void __fastcall Button1Click(TObject *Sender);
    	void __fastcall Button2Click(TObject *Sender);
    	void __fastcall FormCreate(TObject *Sender);
    private:	// Déclarations utilisateur
    public:		// Déclarations utilisateur
    	__fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
     
    // CPP
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //#pragma link "GraphicEx"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    	: TForm(Owner)
    { }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    { //    ERREUR A LA LIGNE CI-DESSOUS
     /*SavePictureDialog1->Filter = FileFormatList->GetGraphicFilter(ARRAYOFCONST((ftEnableSaving)),
       fstNone, ARRAYOFCONST((foIncludeExtension)), NULL);*/
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    { // Load    Charge les images y compris .TGA
     if (OpenPictureDialog1->Execute())
    	Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    { // Save   Sauve que .JPG et .BMP
     //SavePictureDialog1->FilterIndex = 1;
     if (SavePictureDialog1->Execute())
    	SaveGraphicToFile(Image1->Picture->Graphic, SavePictureDialog1->FileName);
    }

  4. #4
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut
    il y avait peut-être une erreur dans ma premiere librarie
    tu trouvera ci-dessous
    le projet pour la création de la librarire avec c++ Builder 10.3
    en version Debug et Release
    ainsi q'un un projet de test fonctionel

    bien cordialement
    Fichiers attachés Fichiers attachés
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2009
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Bonsoir,
    J'en suis là, rien à faire pour TIFF ICO etc.
    Bonne soirée...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     if(SD->Execute())
      {
       if(ExtractFileExt(UpperCase(SD->FileName))==".TGA")
       {
    	TTargaGraphic *TAG = new TTargaGraphic;
    	TAG->Width = ImageVue->Picture->Width;
    	TAG->Height = ImageVue->Picture->Height;
    	TAG->Canvas->Draw(0, 0, ImageVue->Picture->Graphic);
    	TAG->SaveToFile(SD->FileName);  delete TAG;
       }
      else if(ExtractFileExt(UpperCase(SD->FileName))==".JPG")
       { // 2 Façons de faire
    	// 1- celle là en 3 lignes de code
    	TJPEGImage *JPG = new  TJPEGImage();
    	JPG->Assign(ImageVue->Picture->Bitmap);
    	JPG->SaveToFile(SD->FileName); delete JPG;
    	// 2- ou celle ci en 1 ligne de code
    	// SaveGraphicToFile(ImageVue->Picture->Graphic, SD->FileName);
       }
      else if(ExtractFileExt(UpperCase(SD->FileName))==".TIF")
       { // Ne fonctionne pas
    	//TTIFFGraphic *TIF = new  TTIFFGraphic;
    	//TIF->Assign(ImageVue->Picture->Bitmap);
    	//TIF->SaveToFile(SD->FileName); delete TIF;
       }
      else
       {
    	if(ExtractFileExt(UpperCase(SD->FileName))==".PNG")
    	 {
    	  FileFormatList->RegisterFileFormat("png", gesPortableNetworkGraphic, "",
    	  TFormatTypes()<<ftRaster<<ftEnableSaving, true, __classid(TPngImage));
    	 }
    	else if(ExtractFileExt(UpperCase(SD->FileName))==".GIF")
    	 {
    	  FileFormatList->RegisterFileFormat("gif", fstBoth, "",
    	  TFormatTypes()<<ftRaster<<ftEnableSaving, true, __classid(TGIFImage));
    	 }
    	SaveGraphicToFile(ImageVue->Picture->Graphic, SD->FileName);
       }
      }

  6. #6
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut
    la libraire Graphex est capable de lire les extensions suivantes:"bmp,ico,wmf,emf,jfif,jpg,jpe,jpeg,msk,rle,dib,tga,vst,vda,win,icb,tif,tiff,fax,eps,pcx,pcc,scr,rpf,rla,sgi,rgba,rgb,bw,psd,pdd,ppm,pgm,pbm,cel,pic,pcd,gif,cut,psp,pfr,tub,png,ged
    en revanche en écriture (ftEnableSaving) avec la méthode SaveGraphicToFile uniquement les extensions suivantes.bmp, wmf, emf, jfif,jpg jpe, jpe,png
    pour plus de précision sur la bibliothèque qui fonctionne par ailleurs de manière parfaitement similaire en Delphi
    Prière de contacter l'auteur :Mike Lischke (www.soft-gems.net)

    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2009
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Hello!

    Effectivement, après pas mal de recherches, elle lit énormément d’extensions.
    Dommage qu'elle n'en sauvent que peu.
    Pour palier à cela j'ai essayé Gdiplus qui est plus compliqué mais qui m'écrit bien les TIF.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CLSID tiffClsid; GetEncoderClsid(L"image/tiff", &tiffClsid);
    	 image.Save(SD->FileName.c_str(), &tiffClsid, NULL);
    Il ne reste plus qu'à trouver pour les ICO, bien que là je crois qu'il y aura du travail.
    @ bientôt

Discussions similaires

  1. Choisir Visual c++ ou Borland C++Builder ?
    Par DevEric dans le forum Choisir un environnement de développement
    Réponses: 31
    Dernier message: 14/06/2007, 23h48
  2. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    Réponses: 10
    Dernier message: 12/03/2006, 22h33
  3. c++ builder JavaDoc :)
    Par JEG dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2002, 13h31
  4. Documentation DirectX dans C++Builder 3
    Par srvremi dans le forum DirectX
    Réponses: 1
    Dernier message: 26/04/2002, 09h59
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo