Sto usando uno script in C# per ridimensionare delle immagini, tutto bene se non per il fatto che mi escono a 96 dpi rispetto alle 72 dpi dell'originale. Come si può fare per avere un'immagine di 72 dpi?
Questo lo script:
codice:
<%@ Page Language="C#" debug="true"%>
<%@ import Namespace="System.IO" %>
<%@ import Namespace="System.Drawing" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<script runat="server">

void Page_Load(Object sender, EventArgs e) {
	int MaxWidth = Convert.ToInt32(Request.QueryString["width"]);
//	int MaxHeight;
	int MaxHeight = Convert.ToInt32(Request.QueryString["height"]);
//	string imgFileName;
	string imgFileName = Request.QueryString["imgFile"];
	string[] arrNome = imgFileName.Split('.');
	//visualizzo in output l'immagine non ridimensionata con qualità 75
	ResizeFile(imgFileName,800,600,arrNome[0]+"_1."+arrNome[1],50);
	ResizeFile(imgFileName,640,480,arrNome[0]+"_2."+arrNome[1],50);
	ResizeFile(imgFileName,400,300,arrNome[0]+"_3."+arrNome[1],50);
	
	//visualizzo in output l'immagine non ridimensionata con qualità 50
	//ResizeFile("public/Bulk/feste studentesche/mandrillo 7dicembre.JPG",0,0,"",50);
	
	//visualizzo in output l'immagine ridimensionata a 100X100px con qualità 50
	//ResizeFile("public/Bulk/feste studentesche/mandrillo 7dicembre.JPG",100,100,"",50);
	
	//salvo l'immagine col nome "thumb.jpg" non ridimensionata con qualità 75
	//ResizeFile("myimage.jpg",0,0,"thumb.jpg",75);
	
	//salvo l'immagine col nome "thumb.jpg" ridimensionata a 100X100px con qualità 75
	//ResizeFile("myimage.jpg",100,100,"",50);
	
}


private void Resize(Stream imgStr, int width, int height, string FileName, int compression) {

	//creo il bitmap dallo stream
	System.Drawing.Image bmpStream=System.Drawing.Image.FromStream(imgStr);
	int DimOrizz = Convert.ToInt32(bmpStream.Width); //Larghezza di partenza
	int DimVert = Convert.ToInt32(bmpStream.Height); //Altezza di partenza
	int DimOrizzFinale; //= 300;
	int DimVertFinale; //= 300;
	
	//creo un nuovo bitmap
	Bitmap img;
	
	//controllo valori in entrata
	if (compression == 0) compression = 100;
	
	if (DimOrizz > width) {
		DimOrizzFinale = width;
		DimVertFinale = Convert.ToInt32((DimOrizzFinale*DimVert)/DimOrizz);
		if (height > 0) {
			if (DimVertFinale > height) {
				DimVertFinale = height;
				DimOrizzFinale = Convert.ToInt32((DimOrizz*DimVertFinale)/DimVert);
			}
		}
	}
	else {
		if (DimVert > height) {
			DimVertFinale = height;
			//DimOrizzFinale = Convert.ToInt32((height / DimVert) * DimOrizz);
			DimOrizzFinale = Convert.ToInt32((DimOrizz*DimVertFinale)/DimVert);
		}
		else {
			DimOrizzFinale = DimOrizz;
			DimVertFinale = DimVert;
		}
	}
	
	//DimOrizzFinale = 800;
	//DimVertFinale = 800;
	
	//se indicato lo ridimensiono
	if (width == 0 || height == 0) img=new Bitmap(bmpStream);
	else img=new Bitmap(bmpStream,new Size(DimOrizzFinale,DimVertFinale));
	
	
	
	ImageCodecInfo jpegCodecInfo;
	System.Drawing.Imaging.Encoder encoder;
	EncoderParameter encoderParameter;
	EncoderParameters encoderParameters;
	jpegCodecInfo = GetEncoderInfo("image/jpeg");
	encoder = System.Drawing.Imaging.Encoder.Quality;
	encoderParameters = new EncoderParameters(1);
	encoderParameter = new EncoderParameter(encoder, compression);
	encoderParameters.Param[0] = encoderParameter;
	if (FileName != "") {
		img.Save(FileName, jpegCodecInfo, encoderParameters);
	} else {
		Response.ContentType = "image/jpeg";
		img.Save(Response.OutputStream, jpegCodecInfo, encoderParameters);
	}
	img.Dispose();
	img = null;

}

private void ResizeFile(string nomefile,int width, int height, string nuovonome, int compression) {

	//carico un'immagine in uno stream
	try {
		FileStream file=new FileStream(Server.MapPath(nomefile),FileMode.Open);
		Resize(file,width,height,Server.MapPath(nuovonome),compression);
		file.Close();
	} catch (System.IO.FileNotFoundException ex) {
		Response.Write("l'immagine non esiste");
	}

}

ImageCodecInfo GetEncoderInfo(string mimeType) {
   ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
   for (int j = 0; j< encoders.Length; j++) {
      if (encoders[j].MimeType == mimeType) {
           return encoders[j];
	  }
   }
   return null;
}
</script>
Grazie mille