Io mi ritrovo spesso ad usare questo codice quando il server supporta asp.net
Questo perchè nel backoffice delle persone invece di fargli crearecodice:Public Sub ImgRedim(immagine as String, width as Integer, height as Integer, num as string, ext as string, size_img as string, cartella as string) Dim bmp as System.Drawing.Bitmap = CType(System.Drawing.Image.FromFile(immagine), System.Drawing.Bitmap) Dim name_thumb as string = num if Convert.ToInt32(bmp.Height) > Height then if height = 0 Then height = Convert.ToInt32(width / bmp.Width * bmp.Height) End if if width = 0 Then width = Convert.ToInt32(height / bmp.Height * bmp.Width) End if ' CHECK DELLE DIMENSIONI DI INPUT ( MAXWIDTH 600, MAXHEIGHT 400 if width <= 600 and height > 400 then 'redimnesiona il width su height 400 height = 400 width = Convert.ToInt32(height/ bmp.Height * bmp.Width) elseif width > 600 and height <= 400 then 'redimnesiona il width su height 400 width = 600 height = Convert.ToInt32(width / bmp.Width * bmp.Height) end if Dim miniaturabmp as New System.Drawing.Bitmap(bmp, width, height) if immagine.EndsWith(".jpg") Then miniaturabmp.Save(Server.MapPath("../writable/public/" & cartella & "/" & name_thumb & ".jpg"), System.Drawing.Imaging.ImageFormat.Jpeg) else miniaturabmp.Save(Server.MapPath("../writable/public/" & cartella & "/" & name_thumb & ".gif"), System.Drawing.Imaging.ImageFormat.Gif) end if miniaturabmp.Dispose() else if immagine.EndsWith(".jpg") Then bmp.Save(Server.MapPath("../writable/public/" & cartella & "/" & name_thumb & ".jpg"), System.Drawing.Imaging.ImageFormat.Jpeg) else bmp.Save(Server.MapPath("../writable/public/" & cartella & "/" & name_thumb & ".gif"), System.Drawing.Imaging.ImageFormat.Gif) end if end if Dim f As New FileInfo(server.MapPath("../writable/public/" & cartella & "/" & name_thumb & ext)) Dim info_bmp as System.Drawing.Bitmap = CType(System.Drawing.Image.FromFile(server.MapPath("../writable/public/" & cartella & "/" & name_thumb & ext)), System.Drawing.Bitmap) Height = Convert.ToInt32(info_bmp.Height) Width = Convert.ToInt32(info_bmp.Width) info_bmp.Dispose() if cartella = "grande" then Dim_grande.text = "" & name_thumb & ext & " - Dimensioni: " & Width & "x" & Height & " Peso: " & FormatNumber(f.Length/1024, 1, , ,TriState.True) & " Kb" elseif cartella = "piccola" then Dim_piccola.text = "" & name_thumb & ext & " - Dimensioni: " & Width & "x" & Height & " Peso: " & FormatNumber(f.Length/1024, 1, , ,TriState.True) & " Kb" end if bmp.Dispose() End Sub 'Esempio di chiamata inputFile.PostedFile.SaveAs(Server.MapPath("../writable/public/" & num & ext)) 'num è un random per evitare che esista il file (magari un controllo + scrupoloso non guasterebbe :) Dim size_img = inputFile.PostedFile.ContentLength call ImgRedim(immagine, 100, 0, num, ext, size_img,"piccola") call ImgRedim(immagine, 600, 0, num, ext, size_img,"grande")
una miniatura (che salvo nell'esempio in writable/public/piccola/) ed una foto vera (che salvo nell'esempio in writable/public/grande/)
gli fai caricare una foto anche grossolana (sempre cmq jpg o gif) e poi ne creo una miniatura ed una che abbia i limiti imposti dal layout del sito (nel codice sopra cambia c'è un controlla che impone come massimo with 600 e height a 400)

Rispondi quotando