Salvare Immagini In Formato Jpg Con Compressione Variabile

Posted by: ollie10 5/28/2009 3:27 PM

Spesso capita di dover lavorare con delle immagini e di volerle salvare nel formato più comune per il web il jpg, usando i parametri standard dell'oggetto image il risultato però non è ottimale. La funzione Save() ha un paio di interessanti parametri EncoderParameters e ImageCodecInfo che possono venirci in aiuto.

Usando queste semplici funzioni possiamo salvare l'immagine specificando il rapporto di compressione (da 0 a 100) come faremmo con photoshop o qualsiasi altro programma di grafica

 

Image image = Bitmap.FromFile("C:\\immagine.jpg");
// SALVO L'IMMAGINE CON UN RAPPORTO DI COMPRESSIONE DEL 75%
SaveJPG(image, "C:\\output.jpg", 75);


private ImageCodecInfo GetEncoderInfo(String mimeType)
{
	int j;
	ImageCodecInfo[] encoders;
	encoders = ImageCodecInfo.GetImageEncoders();
	for (j = 0; j < encoders.Length; ++j)
	{
		if (encoders[j].MimeType == mimeType)
		return encoders[j];
	}
	return null;
}

public static void SaveJPG(Image image, string fileName, long compression)
{
	EncoderParameters eps = new EncoderParameters(1);
	eps.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, compression);
	ImageCodecInfo ici = GetEncoderInfo("image/jpeg");
	image.Save(fileName, ici, eps);
}
Tags: ,
Categories: Asp.NET - C#
Permalink | Comments (0)
RSS comment feed

Comments

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading