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

Delphi Discussion :

Energistrer des composants comme un Image


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Par défaut Energistrer des composants comme un Image


    Dans une Form j'ai un Panel et dans ce Panel aussi deux images et trois label alors je veux energistrer le tout qu'est quel exist sur le panel comme une image... ?


  2. #2
    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
    Voiçi une solution du type "système D" : Tu lances ton appli ... puis tu déclenches une capture d'écran, ou de région d'écran, avec un logiciel de capture (ex : SnagIt) ou un logiciel de dessin (ex : PaintShopPro) qui comporte une fonction de capture ... et qui t'envoient le fichier-image.bmp sur le disque-dur. Ensuite tu peux récupérer le fichier-image comme tu veux et en faire ce que tu veux.

    Mais peut-être qu'il existe des "solutions Delphi" plus académiques ...
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #3
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Il existe également la méthode GetFormImage de TForm !
    Cela répondra peut-être à ton besoin.

    @+ Claudius

  4. #4
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Voici un bout de code adapté d'un systeme de screenshoty connu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Var Can : TCanvas;
        BMP : TBitmap;
    begin
    BMP := TBitmap.Create;
    Can := TCanvas.Create;
    Can.Handle := Windows.GetWindowDC(Self.Panel1.Handle);
    BMP.Width := Can.ClipRect.Right-Can.ClipRect.Left;
    BMP.Height := Can.ClipRect.Bottom-Can.ClipRect.Top;
    BMP.Canvas.CopyRect(BMP.Canvas.ClipRect, Can, Can.ClipRect);
    BMP.SaveToFile('c:\canvas.bmp');
    Can.Free;
    BMP.Free;
    End;
    On peux recuperer un HDC (handle graphique) depuis n'importe quelle handle ... donc composant ...
    Ensuite on y place un canvas (meme si ce dernier n'en possede pas !) et on peux recuperer ce qui y est dessiné, et meme y ecrire.

    Je ne suis pas sur mais je pense que l'on a meme pas besoin de canvas .. on doit pouvoir directement affecter au canvas du bitmap le handle recupere a partir du panel ...

  5. #5
    Membre éclairé Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Par défaut
    Citation Envoyé par Clorish
    Voici un bout de code adapté d'un systeme de screenshoty connu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Var Can : TCanvas;
        BMP : TBitmap;
    begin
    BMP := TBitmap.Create;
    Can := TCanvas.Create;
    Can.Handle := Windows.GetWindowDC(Self.Panel1.Handle);
    BMP.Width := Can.ClipRect.Right-Can.ClipRect.Left;
    BMP.Height := Can.ClipRect.Bottom-Can.ClipRect.Top;
    BMP.Canvas.CopyRect(BMP.Canvas.ClipRect, Can, Can.ClipRect);
    BMP.SaveToFile('c:\canvas.bmp');
    Can.Free;
    BMP.Free;
    End;

    beaucoup ce code marche tres bien.

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

Discussions similaires

  1. [Lazarus] Performances des composants d'affichage d'images
    Par Jipété dans le forum Lazarus
    Réponses: 1
    Dernier message: 29/01/2014, 00h36
  2. Composants des objets dans une image.
    Par am_003 dans le forum Traitement d'images
    Réponses: 20
    Dernier message: 26/04/2013, 00h17
  3. Réponses: 1
    Dernier message: 14/06/2010, 11h41
  4. Réponses: 1
    Dernier message: 15/06/2008, 12h32
  5. Réponses: 0
    Dernier message: 15/03/2008, 19h47

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