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 :

Zoom sur une image [FAQ]


Sujet :

C++Builder

  1. #1
    Membre actif Avatar de AurelBUD
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2004
    Messages : 202
    Points : 212
    Points
    212
    Par défaut Zoom sur une image
    Bonjour,
    J'ai une image contenant un bitmap et j'aurai aimé savoir comment est-il possible d'effectuer un zoom sur cette image.

    Merci d'avance

  2. #2
    Membre chevronné
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Points : 1 911
    Points
    1 911
    Par défaut
    Vous pouvez utiliser la méthode StretchDraw, voyez mes Remarques sur mon site (cliquez www en bas de ce message pour y accéder), alinéa 62.

    StretchDraw recopie un bitmap dans un autre bitmap de dimension arbitraire, donc s'il est plus grand et respectant les proportions, on obtient un zoom.

    À bientôt
    Gilles

  3. #3
    Membre actif Avatar de AurelBUD
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2004
    Messages : 202
    Points : 212
    Points
    212
    Par défaut
    Déjà merci pour le conseil.
    Mais j'ai de nouveau un problème.
    Lorsque j'effectue mon Zoom, une partie de l'image est zappée.
    En fait je fais un x2 quand je clik sur un bouton et à ce moment là, ce qui est observable c'est le quart superieur de l'image zoomé et le reste est vide. Donc j'ai bien une image 2x plus grande que l'image initiale mais mon bitmap n'est pas complet.
    Celà peut-il venir du fait que mon image est créée par acquisition scanner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //Fonction permettant de charger l'image scanner dans le cadre image
    void __fastcall TForm1::mcmTWAIN1ImageReady(TObject *Sender, Pointer pBmp,
          PBitmapInfo pBmpInfo, HBITMAP hImage, AnsiString FilePath)
    {
       //On libère le cadre au cas où un image est déjà présente
       Image1->Picture->Bitmap->FreeImage();
       //On réinitialise le handle de l'image
       Image1->Picture->Bitmap->ReleaseHandle();
       //On introduit l'image scannée dans le handle
       Image1->Picture->Bitmap->Handle = hImage;
       //On remet à jour l'affichage
       Repaint();
    }

  4. #4
    Membre actif Avatar de AurelBUD
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2004
    Messages : 202
    Points : 212
    Points
    212
    Par défaut
    De plus ma fonction pour dézoomer ne fonctionne pas.

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    On suppose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TImage *Image1;
    Image1->AutoSize = false;
    Image1->Stretch = true;
    Le bitmap contient l'image avec sa dimension réelle.
    Image1 elle, possède sa propre dimension qui est celle du cadre
    dans lequel le bitmap sera dessiné.
    La propriété Stretch = true fait que le bitmap sera dessiné autant
    que possible dans le cadre délimité par Image1 donc comprimée, élargie
    ou tel quel.

    Donc si Zoom = x2 (200 %)

    Image1->Width = Image1->Picture->Bitmap->Width * 2;
    Image1->Height = Image1->Picture->Bitmap->Height * 2;

    A plus !

  6. #6
    Membre actif Avatar de AurelBUD
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    202
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2004
    Messages : 202
    Points : 212
    Points
    212
    Par défaut
    Ok je te remercie maintenant c'est nikel tout marche.
    En fait dans les options de mon image j'avais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Image1->AutoSize = true; 
    Image1->Stretch = false;
    Donc maintenant plus de problème zoom et dezoom ca marche

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

Discussions similaires

  1. Navigation + Zoom sur une image
    Par piloupy dans le forum C#
    Réponses: 1
    Dernier message: 06/03/2008, 09h09
  2. Avoir un zoom sur une image
    Par JamesP dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 26/03/2007, 15h46
  3. Zoom sur une image
    Par mariemor64 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/05/2006, 20h47
  4. Zoom sur une image
    Par flo456 dans le forum Général JavaScript
    Réponses: 35
    Dernier message: 19/05/2006, 07h48
  5. [débutant] zoom sur une image
    Par Anthony17 dans le forum Delphi
    Réponses: 1
    Dernier message: 16/05/2006, 22h09

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