Gestione immagini

giovedì 29 gennaio 2009 - 09.09

stee85 Profilo | Senior Member

Ciao,
è possibile via codice [C#] ridimensionare un'immagine in modo da farla diventare quadrata senza perdere le sue proporzioni?
Avevo pensato di creare un'immagine vuota quadrata e incollarci sopra l'altra ma non saprei come procedere...
qualche suggerimento?
grazie
Ste

rossimarko Profilo | Guru

Ciao,

ti serve ridurla di dimensioni? Se si puoi sfruttare il metodo GetThumbnail: http://www.csharp-station.com/Articles/Thumbnails.aspx

Quando specifichi le dimensioni per evitare di perdere i rapporti riduci prima un lato e poi applica il fattore di riduzione anche all'altro.

Esempio:

Immagine originale 400x200

Prima riduci il lato lungo a 100 e quindi ottieni un rapporto 100/400 = 0.25
Poi applichi questo rapporto anche all'altezza quindi 200*0.25 = 50
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

stee85 Profilo | Senior Member

no non devo ridurla di dimensioni .. praticamente ho le immagini che sono dei rettangoli (100 x 50) e vorrei farle diventare dei quadrati (100x100) ma senza perdere le proporzioni quindi riempire quei 50 che mancano con del bianco per esempio
spero di essermi spiegata un po meglio...
Ste

rossimarko Profilo | Guru

Questo potrebbe esserti utile. Ovviamente non dovrai gestire un'icona come ritorno ma l'immagine creata: http://www.dreamincode.net/code/snippet1684.htm
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

stee85 Profilo | Senior Member


// recupero immagine System.Drawing.Image imageFile = System.Drawing.Image.FromFile(nomeFile); Bitmap emptyBmp = new Bitmap(200, 200); // creazione di un oggetto di tipo Graphics Graphics g = Graphics.FromImage(emptyBmp); //disegno un rettangolo Rectangle rect = new Rectangle(0,0,200,200); g.DrawImageUnscaledAndClipped(imageFile, rect);
Quello che volevo fare era semplicemente aggiungere un quadrato intorno alla mia immagine rettangolare
l'ultima riga dovrebbe avermi aggiunto un rettangolo intorno all'immagine ma adesso come la salvo come un Image?
Ste

rossimarko Profilo | Guru

Devi salvare l'immagine su cui si basa l'oggetto Graphics

g.Flush(); emptyBmp.Save(...);
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

stee85 Profilo | Senior Member

ehm ok... scusa la domanda stupida ma nel .Save che devo mettere?
mi dice o un string o un stream...
sarà g. (qualcosa)?
Ste

rossimarko Profilo | Guru

Dipende da quello che ti serve (http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.save.aspx).

Se vuoi salvare su file allora metti una stringa con il path in cui salvare e puoi specificare anche il formato (jpeg, gif ecc)
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5