C# Klasse zum Konvertieren von Bildern

Basierend auf diesem MSDN Artikel habe ich eine Klasse geschrieben die wie File.Copy(source, target); funktioniert, jedoch bei wechselnder Endung eine Konvertierung vornimmt.

namespace ImageConversion
{
    using System;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.IO;

    public class ImageConverter
    {
        ///
        /// Copies file from source to destination. If target path has different ending it converts the file.
        /// 
        ///Existing source file with original ending and filetype.
        ///Non existing target file with same or different ending.
        public static void Convert(string source, string target)
        {
            string sourceExtension = Path.GetExtension(source).ToLower();
            string targetExtension = Path.GetExtension(target).ToLower();

            if (sourceExtension == targetExtension)
            { //no conversion neccessary, just copy
                File.Copy(source, target);
                return;
            }

            // Load the image.
            Image image = Image.FromFile(source);

            if(targetExtension.Equals(".jpg") || targetExtension.Equals(".jpeg"))
            {
                // Save the image in JPEG format.
                image.Save(target, ImageFormat.Jpeg);
            }
            else if (targetExtension.Equals(".gif"))
            {
                // Save the image in GIF format.
                image.Save(target, ImageFormat.Gif);
            }
            else if (targetExtension.Equals(".png"))
            {
                // Save the image in PNG format.
                image.Save(target, ImageFormat.Png);
            }
            else if (targetExtension.Equals(".bmp"))
            {
                // Save the image in PNG format.
                image.Save(target, ImageFormat.Bmp);
            }
            else if (targetExtension.Equals(".tiff"))
            {
                // Save the image in PNG format.
                image.Save(target, ImageFormat.Tiff);
            }
            else
            {
                throw new Exception("Unknown target file type!");
            }
        }
    }
}

Verwendung:

ImageConverter.Convert(sourcePath, targetPath);

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert