Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Ridimensionamento immagini dimensioni fisse
venerdì 17 maggio 2013 - 15.15
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
.NET 4.0
Gemini
Profilo
| Expert
856
messaggi | Data Invio:
ven 17 mag 2013 - 15:15
Ciao a tutti
ho già delle funzioni che ridimensiona le immagini per altezza o per larghezza e che eseguono il crop.
Ora sono alla ricerca di una funzione che faccia questo: creare immagini, per esempio, 100x100 che dopo aver ridimensionato l'immagine, nel caso questa non sia 100x100, aggiunga uno sfondo in modo tale da avere l'immagine 100x100.
Con il crop riesco ad avere immagini 100x100, ma taglia l'immagine.
Grazie mille
mexico77
Profilo
| Junior Member
96
messaggi | Data Invio:
ven 17 mag 2013 - 15:26
Allora dovresti ridimensionare l'immagine in modo che non superi i 100x100 e nel caso sia più piccola fare una fuzione che ti crea una img 100x100 e poi incolli la tua di dimensioni inferiori sopra.
www.setteweb.it
gsistemi
Profilo
| Junior Member
100
messaggi | Data Invio:
mer 22 mag 2013 - 03:11
'carico l'immagine originale
dim img, img_bg as System.Drawing.Image
img = System.Drawing.Image.FromFile( "C:\prova.jpg" )
' solo se vuoi un fondo particolare altrimenti lo crea nero
img_bg = System.Drawing.Image.FromFile( "C:\background.jpg" )
' scalo l'immagine
dim w as integer = img.width
dim h as integer = img.height
if ( w / h ) >= ( 100 / 120 ) then
w = cint( 120 * w / h )
h = 120
else
h = cint( h * 100 / w )
w = 100
end if
' calcolo la posizione dell'immagine per centrarla se non è precisa
dim posx as integer = cint( ( w - 100 ) / 2 )
dim posy as integer = cint( ( h - 120 ) / 2 )
'setto i valori per l'immagine nuova (qualità, compressione e colori)
Encoders = myImageCodecInfo(1)
myEncoderParameters = New system.drawing.imaging.EncoderParameters(3)
myEncoderParameters.Param(0) = New system.drawing.imaging.EncoderParameter(system.drawing.imaging.Encoder.ColorDepth, CType(24L, Int32))
myEncoderParameters.Param(1) = New system.drawing.imaging.EncoderParameter(system.drawing.imaging.Encoder.Compression, 0)
myEncoderParameters.Param(2) = New system.drawing.imaging.EncoderParameter(system.drawing.imaging.Encoder.Quality, 80)
'ridimensiono l'immagine originale con le dimensioni che ho calcolato
dim thm as system.drawing.image = img.getthumbnailimage( w, h, nothing, system.intptr.zero )
'creo l'immagine nuova delle dimensioni che mi servono (72F e' la risoluzione DPI)
dim btm as new bitmap( 100, 120 )
dim finale as system.drawing.image = btm
dim grf as system.drawing.graphics
btm.setresolution( 72F, 72F )
'creo la foto finale e la salvo
grf = system.drawing.graphics.fromimage(finale)
'solo se vuoi un fondo particolare
grf.drawimage( img_bg, new rectangle( 0, 0, 100, 120 ), 0, 0, 100, 120, graphicsunit.pixel )
grf.drawimage( thm, new rectangle( 0, 0, 100, 120 ), posx, posy, 100, 120, graphicsunit.pixel )
finale.save( "C:\finale.jpg" )
Ho usato i valori 100x120 per distinguere altezza e larghezza, usa i valori che servono a te.
Spero sia utile, non so se esiste un metodo più facile!
Torna su
Stanze Forum
Elenco Threads
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 !