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

Langage Delphi Discussion :

Comment dessiner une bitmap dans le canvas d'un TImage ?


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 705
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 705
    Par défaut Comment dessiner une bitmap dans le canvas d'un TImage ?
    Comment dessiner une bitmap dans le canvas d'un TImage ?

    J'ai une sous-procédure qui me retourne une bitmap sur lequel elle a dessiné tout un tas de chose.
    Quand j'essai de la dessiner dans le Canvas d'un TImage, ça ne fonctionne pas (le TImage reste blanc).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GenerationImpression(BitmapImpression);
    FormApercuAvantImpression.Image.Canvas.Draw(0, nHauteur, BitmapImpression);
    Par contre, si je passe par un fichier intermédiaire, là ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Dans la sous-procédure GenerationImpression :
    BitmapImpression.SaveToFile(GetRepertoireTemp + FICHIER_TEMP);
     
    ...
     
    // Pour afficher la bitmap dans mon TImage :
    FormApercuAvantImpression.Image.Picture.Bitmap.LoadFromFile(GetRepertoireTemp + FICHIER_TEMP);
    Mais, c'est pas une solution.
    Déjà c'est un peu lourd, et surtout j'ai besoin de dessiner des bitmaps les unes à la suite des autres (en hauteur).

    Comment dois-je faire ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    si je ne m'abuse FormApercuAvantImpression.Image.Picture.Assign(BitmapImpression)
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    bonjour ??
    svp ???

    sinon: +1


    Au pire, si ça fonctionne avec SaveTofile, ça fonctionnera aussi avec SaveToStream et ça évite l'enregistrement sur disque.

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Bonjour,

    J'ai une sous-procédure qui me retourne une bitmap sur lequel elle a dessiné tout un tas de chose.
    Quand j'essai de la dessiner dans le Canvas d'un TImage, ça ne fonctionne pas (le TImage reste blanc).
    Il manque peut-être un Image.Refresh, Image.RePaint, ou un Image.Invalidate.
    Ou bien c'est que le BitmapImpression est lui-même tout blanc.

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 950
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 950
    Par défaut
    nHauteur est dans la limite de l'image ?

  6. #6
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    nHauteur est dans la limite de l'image ?
    ah tient j'avais pas vu, le but n'est pas de placer l'image dans un TImage mais de la dessiner à une position donnée
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 705
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 705
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    si je ne m'abuse FormApercuAvantImpression.Image.Picture.Assign(BitmapImpression)
    Effectivement ça fonctionne, mais je n'ai plus le choix de la position en hauteur.

    Citation Envoyé par Gilbert Geyer Voir le message
    Ou bien c'est que le BitmapImpression est lui-même tout blanc.
    Non, il est bon. Je l'ai vérifié avec le SaveToFile. Le fichier BMP est bon.

    Citation Envoyé par Andnotor Voir le message
    nHauteur est dans la limite de l'image ?
    Normalement oui (sinon, ça serait embêtant ).

    Citation Envoyé par Paul TOTH Voir le message
    ah tient j'avais pas vu, le but n'est pas de placer l'image dans un TImage mais de la dessiner à une position donnée
    C'est ça.
    En gros, la sous-procédure est dans une boucle. Et chaque bitmap doit être dessinée à la suite de la précédente (en hauteur) dans le canvas de mon TImage.
    Je suis sûr qu'il ne me manque pas grand chose, mais je ne vois pas comment faire ...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  8. #8
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 950
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 950
    Par défaut
    GenerationImpression ne se présenterait-il pas comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    procedure GenerationImpression(aBitmap :TBitmap);
    begin
      aBitmap := TBitmap.Create;
    Dans quel cas il manquerait un var.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    procedure GenerationImpression(var aBitmap :TBitmap);
    begin
      aBitmap := TBitmap.Create;

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/03/2016, 20h22
  2. Comment remplacer une image dans un canvas.
    Par morchea dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 17/05/2009, 03h44
  3. Comment stocker un Bitmap dans une chaine XML ?
    Par Danny Blue dans le forum C#
    Réponses: 3
    Dernier message: 14/07/2008, 12h15
  4. Réponses: 2
    Dernier message: 15/03/2007, 13h17
  5. Comment dessiner une ligne dans un Chart ?
    Par libititi dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2005, 14h56

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