2012-09-28 11 views
22

Ho riscontrato un problema con il ridimensionamento dell'immagine in C#.image Scaling of picture box

Ho una casella immagine con dimensione data: ad es. width = 800px height = 600px

Sto caricando immagini differenti in quella casella di immagine, quelle di piccole dimensioni (400x400) e quelli più grandi (800 + 600 + x)

Le mie immagini sono sempre ridimensionate, se non si inseriscono in scatola. Ma sono sempre ridimensionati a MAX larghezza e altezza di PictureBox. Quindi lo aspect ratio è distrutto.

Qualcuno può aiutare a identificare/risolvere il problema?

Classi:

Form1.cs

ImageHandling.cs (commentata)

ImageUtilities.cs

Esempi:

Problema 1: mia versione
enter image description here

vs Fonte Originale enter image description here

Problema 2:
mia versione
enter image description here

vs Fonte Originale
enter image description here

come lo voglio:

Soluzione
enter image description here

risposta

46
this.PictureBox1.SizeMode = PictureBoxSizeMode.Zoom; 

Set che proprietà alla PictureBox e la dimensione dell'immagine sarà aumentato o diminuito per adattarsi al PictureBox mantenendo il rapporto di formato.

Per maggiori informazioni: http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.sizemode.aspx

+1

ora funziona Grazie! Ho rimosso il mio metodo di ridimensionamento e ha funzionato. MA le mie foto non sono in dimensioni originali se sono più piccole di picturebox. Qualche idea? – pila

+0

quindi, quello che ti serve è ridimensionare l'immagine solo se è più grande della picturebox? e mantenere le dimensioni se è più piccolo? –

+0

Quando l'immagine che voglio caricare è più piccola della mia casella immagine, è "ingrandita" come dice SizeMode, ma non voglio ingrandirla. Voglio mostrarlo nelle dimensioni originali mantenendo le proporzioni. – pila