Ciao a tutti, utilizzo il seguente script trovato qui sul forum per fare il resize di immagini che risiedono sul mio stesso sito, ora avrei necessità di modificare lo script per il resize di immagini che stiano al di fuori del mio spazio web... E' possibile modificare lo script seguente?
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 = 150; int ThumbnailHeight = 150; string strFileName = ""; string destinazione = Server.MapPath("public/"); 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 (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. // quindi se l'immagine è quadrata... if (tmpImage.Width != tmpImage.Height) { // Se l'immagine non è quadrata // continuiamo a fare i nostri controlli per calcolarne le // giuste dimensioni e quindi creare la nostra nuova immagine con // l'aspectratio corretto. // Se l'immagine è più larga che alta if (tmpImage.Width > tmpImage.Height) { // L > H => L = tL // La larghezza del TN sarà quella da noi stabilita // quindi dobbiamo solo assegnarla. rThumbnailWidth = ThumbnailWidth; // L'altezza del TN invece dovrà essere ricalcolata // in proporzione alla larghezza dell'immagine originale. // L > H => tH = (H * tL)/ L rThumbnailHeight = (double)((tmpImage.Height * ThumbnailWidth) / tmpImage.Width); } // if (tmpImage.Width > tmpImage.Height) else { // Altrimenti se l'immagine è più alta if (tmpImage.Width < tmpImage.Height) { // L < H => H = tH // L'altezza del TN sarà quella da noi stabilita // quindi dobbiamo solo assegnarla. rThumbnailHeight = ThumbnailHeight; // La larghezza del TN invece dovrà essere ricalcolata // in proporzione alla altezza dell'immagine originale. // L < H => tL = (L * tH)/ H 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; // strFileName = DateTime.Now.ToString("dd.MM.yyyy.hh.mm.ss") + "-" + strFileName; 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 + 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); // Se vuoi che l'immagine venga comunque salvata nella cartella dei Thumbnails leva "//" dalla riga sottostante. // bitmap.Save(destinazione + strFileName, 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>

Rispondi quotando
