/// <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";
 }
Exemple #3
0
 void _converter_Encoding(object sender, BitmapConverterEventArgs e)
 {
     e.Encoder = new PngBitmapEncoder();
     (e.Encoder as PngBitmapEncoder).Interlace = _interlace;
     e.ConvertedFileExtension = ".png";
 }