Sperando di fare cosa gradita a tutti posto il codice che uso io per il resize, il crop e lacompressione delle immagini:
Per richiamare il tutto utilizzo:codice:<%@ Page Language="vb" Debug="true"%> <%@ import namespace="system"%> <%@ import namespace="system.drawing" %> <%@ import namespace="system.drawing.imaging" %> <%@ import namespace="system.drawing.drawing2d" %> <% Dim StrPath As String Dim StrImgFile As String Dim StrPathImmagine As String Dim IntFinalWidth As Integer Dim IntFinalHeight As Integer Dim IntXSize As Integer Dim IntYSize As Integer Dim IntHalfWidth As Integer Dim IntHalfHeight As Integer Dim X As Integer Dim Y As Integer Dim IntXMiniatura As Integer Dim IntYMiniatura As Integer 'Recupero il nome dell'immagine StrImgFile = Request.Querystring("image") 'il path dove risiede l'immagine StrPath = Server.Mappath("/images") 'path+nomeimmagine StrPathImmagine = StrPath &"/"& StrImgFile 'Recupero la larghezza e la lunghezza che dovrà avere l'immagine IntFinalWidth = Request.QueryString("w") IntFinalHeight = Request.QueryString("h") 'Variabili per l'anteprima Dim ObjBMP As System.Drawing.Image Dim ObjGraphics As System.Drawing.Image 'prendiamo alcune informazioni importanti dall'immagine orginale ObjBMP = New Bitmap(StrPathImmagine) 'Misure dell'immagine Dim IntImgW As Integer = ObjBMP.Width Dim IntImgH As Integer = ObjBMP.Height 'Nuove misure dell'immagine servono per mantenere le proporzioni, per il mio caso mi basta ridimensionare in base all'altezza Dim IntNewImgW As Integer Dim IntNewImgH As Integer IntNewImgH = IntFinalHeight IntNewImgW = (IntFinalHeight / IntImgH) * IntImgW ObjGraphics = ObjBMP.GetThumbnailImage(IntNewImgW, IntNewImgH, Nothing, IntPtr.Zero) 'Compressione Dim compression as long 'Recupero il valore di compressione (da 0 a 100) If Trim(Request.QueryString("c")) = "" then compression = 100 Else compression = Request.QueryString("c") End if Dim myImageCodecInfo As System.Drawing.Imaging.ImageCodecInfo Dim myEncoder As System.Drawing.Imaging.Encoder Dim myEncoderParameter As System.Drawing.Imaging.EncoderParameter Dim myEncoderParameters As System.Drawing.Imaging.EncoderParameters Dim i As Integer Dim encoders As System.Drawing.Imaging.ImageCodecInfo() = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders() For i = 0 To (encoders.Length - 1) If (encoders(i).MimeType = "image/jpeg") Then myImageCodecInfo = encoders(i) End If Next i myEncoder = System.Drawing.Imaging.Encoder.Quality myEncoderParameters = New System.Drawing.Imaging.EncoderParameters(1) myEncoderParameter = New System.Drawing.Imaging.EncoderParameter(myEncoder, compression) myEncoderParameters.Param(0) = myEncoderParameter ObjGraphics = ObjBMP.GetThumbnailImage(IntNewImgW, IntNewImgH, Nothing, IntPtr.Zero) 'Qui viene fatto il crop, se non vi è necessario saltatelo Dim ObjSysDrawImg as new system.drawing.bitmap(IntFinalWidth, IntFinalHeight, pixelformat.Format24bppRgb) Dim ObjGraphics2 as graphics = graphics.fromimage(ObjSysDrawImg) ObjGraphics2.CompositingQuality = CompositingQuality.HighQuality ObjGraphics2.SmoothingMode = SmoothingMode.AntiAlias ObjGraphics2.InterpolationMode = InterpolationMode.HighQualityBicubic IntXSize = ObjGraphics.width-1 IntYSize = ObjGraphics.height-1 IntHalfWidth = IntXSize/2 IntHalfHeight = IntYSize/2 X = IntHalfWidth - (IntFinalWidth/2) Y = IntHalfHeight - (IntFinalHeight/2) ObjGraphics2.drawimage(ObjGraphics, new rectangle(0, 0, IntFinalWidth, IntFinalHeight), new rectangle(X,Y,IntFinalWidth,IntFinalHeight),GraphicsUnit.Pixel) ObjGraphics.Dispose() '------------------------------------------------------ Response.ContentType="image/jpeg" 'Se avete saltato il crop commentate la riga sottostante ObjSysDrawImg.save(response.outputstream, myImageCodecInfo, myEncoderParameters) 'Se avete saltato il crop decomentate la riga sottostante 'ObjGraphics.Save(response.outputstream, myImageCodecInfo, myEncoderParameters) ObjBMP.Dispose() ObjGraphics2.Dispose() ObjSysDrawImg.Dispose()
[img]resize.aspx?image=1.bmp&w=150&h=220&c=80[/img]
Ciao a tutti![]()
![]()

Rispondi quotando