2012-09-28 11 views
22

Ich habe ein Problem mit der Bildskalierung in C#.image Skalierung der Picture Box

Ich habe ein Bild Box mit gegebener Größe: z.B. width = 800px height = 600px

ich verschiedene Bilder in das Bildfeld bin Laden, kleine (400x400) und Großen (800 + x 600+)

Meine Bilder der Größe verändert werden immer, wenn sie in nicht passen Box. Aber sie sind immer Größe auf MAX Breite und Höhe von PictureBox angepasst. So ist das Seitenverhältnis zerstört.

Kann jemand helfen, das Problem zu identifizieren/zu beheben?

Klassen:

Form1.cs

ImageHandling.cs (Kommentar gesetzt) ​​

ImageUtilities.cs

Beispiele:

Problem 1: Meine Version
enter image description here

vs Original-Quelle enter image description here

Problem 2:
Meine Version
enter image description here

vs Original-Quelle
enter image description here

wie ich es will:

Lösung
enter image description here

Antwort

46
this.PictureBox1.SizeMode = PictureBoxSizeMode.Zoom; 

Set, dass das Eigentum an Ihrer PictureBox und die Größe des Bildes erhöht wird oder verringert die PictureBox Beibehaltung der Größenverhältnis passen.

Für weitere Informationen: http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.sizemode.aspx

+1

Es funktioniert jetzt Danke! Ich habe meine Größenänderungsmethode entfernt und es hat funktioniert. ABER meine Bilder sind nicht in Originalgröße, wenn sie kleiner als Bildbox sind. Irgendeine Idee? – pila

+0

also, was Sie brauchen, um das Bild nur zu ändern, wenn es größer ist als die Picturebox? und behalten Sie die Größe, wenn es kleiner ist? –

+0

Wenn das Bild, das ich laden möchte, kleiner ist als meine Bilderbox, wird es "gezoomt" wie der SizeMode sagt, aber ich möchte es nicht vergrößern. Ich möchte es in Originalgröße anzeigen, indem ich das Seitenverhältnis beibehalte. – pila

Verwandte Themen