Prova questo (opportunamente modificalo per le tue esigenze)
codice:<%@ Page Language="C#" Debug="true" %> <%@ import Namespace="System"%> <%@ import Namespace="System.IO"%> <%@ import Namespace="System.Drawing" %> <%@ import Namespace="System.Drawing.Imaging" %> <%@ import Namespace="System.Text.RegularExpressions" %> <script Language="C#" runat="server"> void Page_Load(Object sender, EventArgs e) { int ThumbnailWidth = 64; int ThumbnailHeight = 64; string strFileName = ""; string destinazione = "./"; double orgImgWidth = 0.0; double orgImgHeight = 0.0; double rThumbnailWidth = 0.0; double rThumbnailHeight = 0.0; System.Drawing.Image orgImage; if (Request.QueryString["w"] != "") ThumbnailWidth = Convert.ToInt32(Request.QueryString["w"]); if (Request.QueryString["h"] != "") ThumbnailHeight = Convert.ToInt32(Request.QueryString["h"]); if (Request.QueryString["src"] != "") { strFileName = Convert.ToString(Request.QueryString["src"]); if (Request.QueryString["percorso"] != "") destinazione = Convert.ToString(Server.MapPath(Request.QueryString["percorso"])); else destinazione = Convert.ToString(Server.MapPath(destinazione)); if (strFileName != "") { try { orgImage = System.Drawing.Image.FromFile(Server.MapPath(strFileName)); using(Bitmap tmpImage = new Bitmap(orgImage)) { rThumbnailWidth = ThumbnailWidth; rThumbnailHeight = ThumbnailHeight; orgImgWidth = tmpImage.Width; orgImgHeight = tmpImage.Height; // Se l'immagine è più piccola del Thumbnail forziamo le dimensioni di // quest'ultimo alle dimensioni dell'immagine. if (orgImgWidth < ThumbnailWidth) ThumbnailWidth = tmpImage.Width; if (orgImgHeight < ThumbnailHeight) ThumbnailHeight = tmpImage.Height; // Se le dimensioni dell'immagine e del Thumbnail corrispondono non facciamo nulla. if (tmpImage.Width != tmpImage.Height) { // Altrimenti continuiamo a fare i nostri controlli per calcolarne le // giuste dimensioni e quindi creare la nostra nuova immagine con // l'aspectratio corretto. if (tmpImage.Width > tmpImage.Height) { // L > H => tH = (H * tL)/ L rThumbnailWidth = ThumbnailWidth; rThumbnailHeight = (double)((tmpImage.Height * ThumbnailWidth) / tmpImage.Width); } // if (tmpImage.Width > tmpImage.Height) else { if (tmpImage.Width < tmpImage.Height) { // L < H => tL = (L * tH)/ H rThumbnailHeight = ThumbnailWidth; rThumbnailWidth = (double)((tmpImage.Width * ThumbnailHeight) / tmpImage.Height); } // if (tmpImage.Width < tmpImage.Height) } // else } // if (tmpImage.Width != tmpImage.Height) } // using(Bitmap tmpImage = new Bitmap(orgImage)) using(Bitmap bitmap = new Bitmap(orgImage, (int)(rThumbnailWidth), (int)(rThumbnailHeight))) { Response.ContentType = orgImage.RawFormat.ToString(); Response.Clear(); Response.BufferOutput = true; Response.AddHeader("Content-Disposition", "filename=" + strFileName); // In questo caso viene creata e salvata la Thumbnail dell'immagine in /thumbs/ if ((orgImage.Width > ThumbnailWidth) || (orgImage.Height > ThumbnailHeight)) { bitmap.Save(Response.OutputStream, orgImage.RawFormat); bitmap.Save(destinazione + "/public/" + strFileName, orgImage.RawFormat); } // if ((orgImage.Width > ThumbnailWidth) || (orgImage.Height > ThumbnailHeight)) else // L'immagine rientra già nella dimensione da noi decisa quindi non serve creargli il Thumbnail. { bitmap.Save(Response.OutputStream, orgImage.RawFormat); } // else Response.Flush(); } // using(Bitmap bitmap = new Bitmap(orgImage, (int)(rThumbnailWidth), (int)(rThumbnailHeight))) } // try catch (Exception ex) { Response.Write(ex.Message); } // catch (Exception ex) finally { Response.Write("\nRe-Coded by R.B. Riddick"); } } // if (strFileName != "") } // if (Request.QueryString["src"] != "") } </script>http://deepabyss.org/test/test.aspxcodice:<%@ Page Language="C#" Debug="true" %> <%@ import Namespace="System"%> <html> <body> </br>Originale (2272px X 1704px): </br> [img]DSCN0644.jpg[/img]</br> </br>Ridimensionata (800px X 150px)</br> [img]img.aspx?src=DSCN0644.jpg&w=800&h=150[/img] </br>Ridimensionata (400px X 150px)</br> [img]img.aspx?src=DSCN0644.jpg&w=400&h=150[/img] </br>Ridimensionata (300px X 150px)</br> [img]img.aspx?src=DSCN0644.jpg&w=300&h=150[/img] </br>Ridimensionata (100px X 150px)</br> [img]img.aspx?src=DSCN0644.jpg&w=100&h=150[/img] </br>Originale (190px X 224px): </br> [img]mappa_to_pic_a.gif[/img]</br> </br>Ridimensionata (185px X 100px)</br> [img]img.aspx?src=mappa_to_pic_a.gif&w=&h=[/img]</br> </br>Ridimensionata (100px X 100px)</br> [img]img.aspx?src=mappa_to_pic_a.gif&w=&h=[/img]</br> </body> </html>

Rispondi quotando