using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
public enum QualitaCompressione
{
Bassa = 20,
Media = 40,
Alta = 60,
Altissima = 80
}
private ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
public
void Comprimi(string filePath, string filePathCompresso, QualitaCompressione qualita)
{
//Oggetto dell'immagine da ridurre le dimensioni
Image immagine = Image.FromFile(filePath);
//Nuova immagine compressa
using (FileStream fs = new FileStream(filePathCompresso, FileMode.Create))
{
//Oggetto encoder per l'immagine
ImageCodecInfo encoder = GetEncoder(ImageFormat.Jpeg);
//Imposto i parametri di compressione
EncoderParameters ep = new EncoderParameters(1);
ep.Param[0]
= new EncoderParameter(Encoder.Quality, (int)qualita);
//Salvo la nuova Immagine
immagine.Save(fs, encoder, ep);
}
immagine.Dispose();
}
private void btnComprimere_Click(object sender, EventArgs e)
{
string filePath = @"C:\varie\bicicletta.jpg";
string filePathCompresso = @"C:\varie\bicicletta_compresso.jpg";
Comprimi(filePath, filePathCompresso, QualitaCompressione.Media);
}
Nessun commento:
Posta un commento