/// <summary> /// Converts a bitmap file (whatever format, i.e. RAW or BMP) into a file which format depends of the encoder passed as argument. /// A new BitmapEncoder has to be created in the Encoding event handler for each file (because the Save method can be called only once). /// </summary> /// <param name="originalFilename">The original image file name, without path.</param> /// <param name="originalPath">The path of the original file.</param> /// <param name="convertedPath">The path of the converted file.</param> /// <param name="overwriteExistingFile">Indicates if an existing converted file should be overwritten.</param> public void ConvertFile( string originalFilename, string originalPath, string convertedPath, bool overwriteExistingFile) { Directory.CreateDirectory(convertedPath); BitmapDecoder decoder = GetDecoder(originalFilename, originalPath); if (_encoding != null) { BitmapConverterEventArgs e = new BitmapConverterEventArgs( originalFilename, "", originalPath, convertedPath); _encoding(this, e); if (!String.IsNullOrEmpty(e.ConvertedFileExtension)) { e.ConvertedFilename = System.IO.Path.ChangeExtension(originalFilename, e.ConvertedFileExtension); } string convertedFullFilename = System.IO.Path.Combine(convertedPath, e.ConvertedFilename); if (overwriteExistingFile || !File.Exists(convertedFullFilename)) { using (FileStream fs = File.OpenWrite(convertedFullFilename)) { if (e.Encoder != null) { e.Encoder.Frames.Add(decoder.Frames[0]); e.Encoder.Save(fs); if (_encoded != null) { _encoded(this, e); } } } } } }
void _converter_Encoding(object sender, BitmapConverterEventArgs e) { e.Encoder = new JpegBitmapEncoder(); (e.Encoder as JpegBitmapEncoder).QualityLevel = _qualityLevel; e.ConvertedFileExtension = ".jpg"; }
void _converter_Encoding(object sender, BitmapConverterEventArgs e) { e.Encoder = new PngBitmapEncoder(); (e.Encoder as PngBitmapEncoder).Interlace = _interlace; e.ConvertedFileExtension = ".png"; }