web-dev-qa-db-fra.com

Comment zoomer et dézoomer une image en C #?

Je veux implémenter le zoom pour une image. Je ne veux pas redimensionner le PictureBox , mais l'image elle-même.

Comment puis-je faire cela?

17
Mehmet Ince

Une solution est:

  1. Créer une nouvelle image de la taille souhaitée (par exemple 200% ou 50% de la taille d'image originale)
  2. Dessine l'image d'origine sur une nouvelle image en utilisant Graphics.DrawImage (Image, Rectangle); , qui dessine l'image donnée vers la nouvelle image à la position donnée avec la taille donnée
  3. Définir une nouvelle image comme source pour le PictureBox

Une autre façon consiste à créer simplement une nouvelle instance bitmap comme celle-ci:

Size newSize = new Size((int)(originalBitmap.Width * zoomFactor), (int)(originalBitmap.Height * zoomFactor));
Bitmap bmp = new Bitmap(originalBitmap, newSize);
29
Thorsten Dittmar

J'ai utilisé un navigateur Web pour y parvenir.

//loads the image
myWebBrowser.Navigate(@"C:\myimage.png");

De là, j'ai utilisé SendKeys pour zoomer et dézoomer

myWebBrowser.Select(); //Selects browser.
SendKeys.Send("^{+}"); //Sends the control + key combo, causing the browser to zoom in. Replace the "+" with a "-" to zoom out.

C'est un peu une méthode bizarre, mais cela a très bien fonctionné pour moi. J'espère que ça t'as aidé!

0
user11122432