Bilder mit JPEG beliebig komprimieren in C#

Heute zeige ich euch, wie man Bilder mit Hilfe des JPEG-Codecs beliebig komprimieren kann. Beliebig heißt in unserem Fall, dass ihr die Qualitätsstufe festlegen könnt, die das Bild trotz des Komprimierens beibehalten soll. Da die Funktion, die ich euch dafür geschrieben habe relativ kurz ist, denke ich, dass die Kommentare im Quelltext ausreichen sollten. Und nun viel Spaß damit!

private void JpegBildKomprimieren(Image quellBild, int qualitaet, string speicherPfad)
{
    try
    {
        //Ein ImageCodecInfo-Objekt für den JPEG-Codec anlegen
        ImageCodecInfo jpegCodec = null;

        //Den Qualitätsarameter konfigurieren (Qualitätsfaktor in
        //Prozent angeben)
        EncoderParameter qualitaetsParameter = new EncoderParameter(
                    System.Drawing.Imaging.Encoder.Quality, qualitaet);

        //Alle im System verfügbaren Codecs auflisten
        ImageCodecInfo[] alleCodecs = ImageCodecInfo.GetImageEncoders();

        EncoderParameters codecParameter = new EncoderParameters(1);
        codecParameter.Param[0] = qualitaetsParameter;

        //Den JPEG-Codec unter allen Codecs finden und dem
        //Codec-Info-Objekt zuweisen
        for (int i = 0; i < alleCodecs.Length; i++)
        {
             if (alleCodecs[i].MimeType == "image/jpeg")
             {
                    jpegCodec = alleCodecs[i];
                    break;
             }
        }

        //Das Bild abspeichern
        quellBild.Save(speicherPfad, jpegCodec, codecParameter);
   }
   catch (Exception e)
   {
        throw e;
   }
}

//Snippet von www.code-bude.net

Aufgerufen werden kann die Funktion zum Beispiel wie folgt:

JpegBildKomprimieren(Image.FromFile(Application.StartupPath + "\\bild.jpg"),
                             30, Application.StartupPath + "\\klein.jpg");
//Snippet von www.code-bude.net

Solltet ihr noch Fragen oder Probleme haben, so schreibt mir einfach einen Kommentar.
Viele Grüße,
Raffi

Bilder mit JPEG beliebig komprimieren in C#Über den Autor: Dieser Artikel, sowie 363 andere Artikel auf code-bude.net, wurden von Raffael geschrieben. – Seit 2011 blogge ich hier über Programmierung, meine Software, schreibe Tutorials und versuche mein Wissen, so gut es geht, mit meinen Lesern zu teilen. Zudem schreibe ich auf derwirtschaftsinformatiker.de über Themen meines Studiums.  //    •  • Facebook  • Twitter


Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Sie dient nur dem Spamschutz.