Riprendo questa mia discussione...

Sto usando da circa un anno due script per fare:
- upload e successiva decompressione di file zip contenenti immagini.
- ridimensionamento delle immagini caricate.

Upload e unzip funziona perfettamente.

Il ridimensionamento delle immagini ha sempre funzionato, fino a qualche giorno fa quando, a fronte di molte immagini da ridimensionare, una parte vengono ridimensionate con le dimensioni corrette (quelle indicate nello script), mentre altre vengono molto più piccole. Le immagini hanno tutte le stesse proporzioni e sono alcune orizzontali e altre verticali. Ripeto, lo script ha sempre funzionato.

La causa potrebbe essere qualche modifica sul server (tipo aggiornamenti o altro) che magari "dà fastidio" a questo script?

Creazione miniature - Codice di R.B. Riddick.
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 = Server.MapPath("/public/temp/thumbs/"); 

double orgImgWidth = 0.0; 
double orgImgHeight = 0.0; 
double rThumbnailWidth = 0.0; 
double rThumbnailHeight = 0.0; 

string strPerc = Server.MapPath("/public/temp/unzip/"); 

DirectoryInfo miaDir = null; 
miaDir = new DirectoryInfo(strPerc); 
DirectoryInfo[] subDirectories = miaDir.GetDirectories(); 
FileInfo[] listaFile = miaDir.GetFiles(); 
ThumbnailWidth = Convert.ToInt32(180); 
ThumbnailHeight = Convert.ToInt32(180); 


for (int i = 0; i < listaFile.Length; i++) 
  { 
   try 
	{ 
	 strFileName = listaFile[i].Name; 
	 String strFilePath = listaFile[i].FullName.ToString(); 
	 
		 
	 using(System.Drawing.Image tmpImage = System.Drawing.Image.FromFile((strFilePath))) 

	  { 
	   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 bitmap = new Bitmap(tmpImage, (int)(rThumbnailWidth), (int)(rThumbnailHeight))) 
		{ 
		// Response.ContentType = tmpImage.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 ((tmpImage.Width > ThumbnailWidth) || (tmpImage.Height > ThumbnailHeight)) 
		  { 
		   //bitmap.Save(Response.OutputStream, tmpImage.RawFormat); 
		   bitmap.Save((destinazione + strFileName), tmpImage.RawFormat); 
		  } // if ((tmpImage.Width > ThumbnailWidth) || (tmpImage.Height > ThumbnailHeight)) 
		 else // L'immagine rientra già nella dimensione da noi decisa quindi non serve creargli il Thumbnail. 
		  { 
		   //bitmap.Save(Response.OutputStream, tmpImage.RawFormat); 
//               Se vuoi che l'immagine venga comunque salvata nella cartella dei Thumbnails leva "//" dalla riga sottostante. 
		   bitmap.Save(destinazione + strFileName, tmpImage.RawFormat); 
		  } // else 
		 //Response.Flush(); 
		} // using(Bitmap bitmap = new Bitmap(orgImage, (int)(rThumbnailWidth), (int)(rThumbnailHeight))) 
	  } // using(System.Drawing.Image tmpImage = System.Drawing.Image.FromFile(Server.MapPath(strFileName))) 
	} // try 
   catch (Exception ex) 
	{ 
	 //Response.Write(ex.Message); 
	} // catch (Exception ex) 
   finally 
	{ 
	 //Response.Write("\nCoded by R.B. Riddick"); 
	} 
 

} 
} 
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Crea miniature</title>
<link rel="stylesheet" type="text/css" href="/admin/style.css" />
<meta http-equiv=refresh content="0;URL=scegli_galleria.asp">
</head>
<body>
</body>
</html>