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

Composants VCL Delphi Discussion :

Comment savoir si un cxImage contient une image de type bmp ou jpeg ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut Comment savoir si un cxImage contient une image de type bmp ou jpeg ?
    Salut tout le monde,
    j´ai un petit souci. je voudrais tout simplement savoir comment etre sur que l´image chargé est de type bmp ou jpeg.

    en fait j´ai un composant qui recois le fond d´une image comme proprieté, mais je voudrais que ma composante puisse detecter si c´est un bmp ou un jpeg pour que je puisse faire tbitmap.create ou tjpepimage.create.

    je dispose d´un canvas, picture.

    merci d´avance

  2. #2
    Inactif  
    Inscrit en
    Novembre 2008
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 255
    Points : 264
    Points
    264
    Par défaut
    bonjour

    cxImage1.Properties.GraphicClassName;

  3. #3
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut Aquaa,

    le probleme est que:

    si je fait: cxImage1.properties.GraphicsClassName,
    j´obtiendrais toujours comme reponse "TBITMAP" pourquoi, parce qu´une fois l´image chargée, il devient un TBITMAP alors que l´image originale etait un JPEG,
    mon Probleme est de savoir comment faire pour avoir le nom du format original.

    Mon Probleme se trouve a ce niveau :

    - lorsque je charge une image de type BMP, et que je colorie cela en une autre couleur, tout est nickel, car j´utilise TBITMAP.Create pour l´image de font.

    - mais lorsque je charge plutot une image de type JPEG, et que j´essaie de le colorier, l´image de fond devient tou blanc car comme j´ai une image de fond originalement JPEG, qui n´a pas au prealable transformer en bitmap, ne peux pas interpreter convenablement.

    c´est pour cela que j´ai besoin de savoir quel type d´image j´ai avant de me lancer dans la coloration de cette image.

    la coloration en elle meme se fait avec scanline, et un pixelformat de 32bits

    merci.

  4. #4
    Inactif  
    Inscrit en
    Novembre 2008
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 255
    Points : 264
    Points
    264
    Par défaut
    Pourquoi ne pas tester au chargement de l'image ?

  5. #5
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    exactement parceque ma composante ne s´occupe pas de cela, elle recois une image deja disponisble comme parent.
    je m´explique :

    j´ai dans un unit une declaration comme celle ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     cxImage1: TcxImage;
    et dans le secteur privée, je cree un objet derivant de ma composante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    obj_composante      : le_nom_de_ma_composante;
    ensuite je cree un objet de ma composante comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    obj_composante := le_nom_de_ma_composante.Create(Self);
    je charge une image quelconque dans mon cximage1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cxImage1.Picture.LoadFromFile(path_de_l_image);
    ensuite je lui transmet a mon objet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    obj_composante.parent := cxImage;
    puis je peux maintenant lui assigner une couleur pour colorier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    obj_composante.Couleur     := clBlue;
    a ce moment, ma composante se charge de colorié cximage1 en bleu.

    mais le proble se trouble a ce niveau, car je je sais pas comment savoir au niveau de ma composante que l´image est un bitmap ou un tjpep.

    c´est pour cela que tout les images bitmap sont bien coloriés, alors que les images jpeg ont un fond blanc.
    j´espere avoir bien expliqué mon probleme.
    merci

  6. #6
    Inactif  
    Inscrit en
    Novembre 2008
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 255
    Points : 264
    Points
    264
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cxImage1.Picture.Graphic.GetNamePath

    TJPEGImage si jpg
    TBitmap si BMP

  7. #7
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    grand merci Aquaa,
    c´est exactement ca que je cherchais.
    maintenant je vais pouvoir remettre les pendules a l´heure dans ma composante.
    encore tres grand merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment tester si un Timage contient une image
    Par Sabrina_of_darkness dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/07/2010, 22h08
  2. Comment savoir si le fichier est une image
    Par MaitrePylos dans le forum Ruby on Rails
    Réponses: 15
    Dernier message: 10/05/2007, 15h31
  3. Réponses: 19
    Dernier message: 26/01/2005, 10h41
  4. [Excel] Comment savoir si la cellule contient un lien hypertexte ?
    Par Millenod dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 16/12/2004, 11h01
  5. Réponses: 7
    Dernier message: 21/10/2004, 09h13

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