web-dev-qa-db-fra.com

image Mise à l'échelle de la zone d'image

j'ai eu un problème avec la mise à l'échelle de l'image en C #.

J'ai une boîte d'image avec une taille donnée: par exemple largeur = 800 px hauteur = 600 px

Je charge différentes images dans cette boîte d'image, petites (400x400) et grandes (800+ x 600+)

Mes images sont redimensionnées si elles ne rentrent pas dans la boîte. Mais ils sont toujours redimensionnés à la largeur et à la hauteur MAX de PictureBox. Le rapport hauteur/largeur est donc détruit.

Quelqu'un peut-il aider à identifier/résoudre le problème?

Classes:

Form1.cs

ImageHandling.cs (commenté)

ImageUtilities.cs

Exemples:

Problème 1: Ma version
enter image description here

vs source d'origine enter image description here

Problème 2:
Ma version
enter image description here

vs source d'origine
enter image description here

Comment je le veux:

Solution
enter image description here

25
pila
this.PictureBox1.SizeMode = PictureBoxSizeMode.Zoom;

Définissez cette propriété sur votre PictureBox et la taille de l'image augmentera ou diminuera pour s'adapter à la PictureBox en conservant le rapport de taille.

Pour plus d'informations: http://msdn.Microsoft.com/en-us/library/system.windows.forms.picturebox.sizemode.aspx

51
Forte L.