1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
{
string[] images = openFileDialog1.FileNames;
foreach (string xImage in images)
{
// Création de l'objet Image
System.IO.FileInfo fileInfo = new System.IO.FileInfo(xImage);
System.IO.FileStream fileStream = fileInfo.OpenRead();
System.Drawing.Image aImage = System.Drawing.Image.FromStream(fileStream);
fileStream.Close();
ImageFormat sourceFormat = aImage.RawFormat;
System.Drawing.Imaging.Encoder[] enc = new System.Drawing.Imaging.Encoder[3];
enc[0] = System.Drawing.Imaging.Encoder.ColorDepth;
enc[1] = System.Drawing.Imaging.Encoder.Compression;
enc[2] = System.Drawing.Imaging.Encoder.Quality;
EncoderParameter[] epX = new EncoderParameter[3];
epX[0] = new EncoderParameter(enc[0], 8L);
epX[1] = new EncoderParameter(enc[1], (long)EncoderValue.CompressionLZW);
epX[2] = new EncoderParameter(enc[2], 0L);
EncoderParameters eps = new EncoderParameters(3);
eps.Param[0] = epX[0];
eps.Param[1] = epX[1];
eps.Param[2] = epX[2];
aImage.Save(xImage.Replace(Path.GetExtension(xImage), "(m)" + Path.GetExtension(xImage)), GetEncoder(sourceFormat), eps);
}
}
private ImageCodecInfo GetEncoder(ImageFormat format)
{
foreach (var info in ImageCodecInfo.GetImageEncoders())
if (info.FormatID == format.Guid)
return info;
return null;
} |
Partager