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
Version imprimable
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
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
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:
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(); }
De plus ma fonction pour dézoomer ne fonctionne pas.
Salut !
On suppose :
Le bitmap contient l'image avec sa dimension réelle.Code:
1
2
3 TImage *Image1; Image1->AutoSize = false; Image1->Stretch = true;
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 !
Ok je te remercie maintenant c'est nikel tout marche.
En fait dans les options de mon image j'avais :
Donc maintenant plus de problème zoom et dezoom ca marcheCode:
1
2 Image1->AutoSize = true; Image1->Stretch = false;