Ridimensionare foto in automatico in controllo image

mercoledì 21 maggio 2014 - 06.21
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows XP  |  Visual Studio 2008  |  SQL Server 2008 R2

basicdany Profilo | Expert

Buondi a tutti, vorrei sapere se e possibile ridimensiona una foto caricata in un controllo "image" , esempio se un utente carica una foto grande 2 mb portarla a 100 kb in automatico, questo per evitare ci occupare molto spazio sub db

grazie a tutti

0v3rCl0ck Profilo | Guru

ci sono tante librerie che fanno questo, ne trovi anche di open-source:

https://github.com/imazen/resizer

https://github.com/terjetyl/Simple.ImageResizer

da quest'altro progetto invece puoi estrarre il ResizingService: https://imageresizer.codeplex.com/SourceControl/latest#ImageResizer/Services/ResizingService.cs


ciao,
Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

basicdany Profilo | Expert

ciao, grazie per risposta, negli esempi visti dai siti, non riesco a vedere la procedura che mi serve per ridimensionare l'immagine potresti darmi una mano.

grazie

0v3rCl0ck Profilo | Guru

puoi semplicemente utilizzarlo in standalone mode, una volta che hai il file uploadato, ovviamente non puoi bloccare il client dall'uploadare anche un immagine da 100 MB, per quello devi bloccarlo con altri strumenti, l'imageresizer lo puoi utilizzare dal momento che hai in mano l'immagine (indipendentemente dalla sua dimensione) e vuoi manipolarla, rimpicciolirla, applicare filtri, e qualsiasi cosa che ti da a disposizione ImageResizer, questo è un esempio per ridurre un immagine di più o meno 1000 px, in 100px:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

trovi l'esempio in vs2013 c# scaricabile da qui: http://goo.gl/GZrk1T



Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

0v3rCl0ck Profilo | Guru

Forse questo è ancora meglio nel tuo caso specifico, sostanzialmente è ancora più semplice, con meno funzionalità: https://github.com/terjetyl/Simple.ImageResizer

un esempio asp.net forms (si può fare anche mvc in modo identico, solo che hai l'action invece che l'evento)

<div class="row"> <asp:FileUpload ID="fileUpload" runat="server"/> <asp:Button ID="uploadButton" Text="Upload" OnClick="uploadButton_OnClick" runat="server"/> </div>

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

progetto completo: http://goo.gl/S6DJUq


Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

basicdany Profilo | Expert

ciao, ti spiego il codice che attualmente ho e che scrive nel db sql server:

'tasto dove carico img
<asp:FileUpload ID="imgUpload" runat="server" BackColor="White" Width="250px" BorderColor="Black" />

'codice vb che scrive nel db controllando la dimensione:

'non oltre 100kb le dimensioni del file
If (fileSize < 100000) Then

If img.HasFile AndAlso Not img.PostedFile Is Nothing Then
'To create a PostedFile
Dim File As HttpPostedFile = imgUpload.PostedFile
'Create byte Array with file len
imgByte = New Byte(File.ContentLength - 1) {}
'force the control to load data in array
File.InputStream.Read(imgByte, 0, File.ContentLength)
End If

procedura che scrive nel db sql server

Else
' MsgBox("Le dimensioni del file superano 200kb, non verra inserita", MsgBoxStyle.Exclamation, "ERRORE")
lblStato.Visible = True
lblStato.Text = "Dimensione max raggiunta"
Exit Sub
End If

Come potrei quindi utilizzare la tua soluzione nel mia procedura?

grazie tanto

0v3rCl0ck Profilo | Guru

ho visto che hai aperto un altro thread, ritengo questo chiuso, e ci spostiamo eventualmente sull'altro


Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic
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