Feedback

C# - Bild splitten

Veröffentlicht von am 30.11.2007
(2 Bewertungen)
Mit dieser Funktion kann man ein Bild in mehrere zerschneiden.

Benutzung:
SplitImage(@"C:\MeineBilder\Chicago.jpg", 128, 128, @"C:\MeineBilder\Split");
GFU-Schulungen  [Anzeige]

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

using System.Drawing;
using System.Drawing.Imaging;

/// <summary>
/// Splittet ein Bild in mehrere Einzelteile.
/// </summary>
/// <param name="path">Pfad zu der Bilddatei.</param>
/// <param name="imageX">X-Koordinate</param>
/// <param name="imageY">Y-Koordinate</param>
/// <param name="outputPath">Pfad zu dem Ordner, wo die Bilddateien gespeichert werden.</param>
public static void SplitImage(string path, int imageX, int imageY, string outputPath)
{
    Bitmap original = new Bitmap(path);
    Rectangle focusRectangle = new Rectangle();
    Bitmap destination;

    for (int x = 0; x <= imageX - 1; x++)
    {
        for (int y = 0; y <= imageY - 1; y++)
        {
            focusRectangle.X = x * (original.Width / imageX);
            focusRectangle.Y = y * (original.Height / imageY);
            focusRectangle.Height = original.Height / imageX;
            focusRectangle.Width = original.Width / imageY;

            destination = original.Clone(focusRectangle, PixelFormat.DontCare);
            destination.Save(outputPath + @"\im" + x.ToString() + y.ToString() + ".jpg");
        }
    }
}
Abgelegt unter Bild, Bilder, Image, Images, Split, splitten, Zerschneiden.

1 Kommentare zum Snippet

Niko Klein schrieb am 03.05.2012:
Bad parameterdescription and wrong code :( ...
imageX and imageY is the amount of splits. e.g: I have a 510x476 image with 34x34 icons, so imageX = 510/34 = 15 ; imageY = 476/34 = 14.
To get it working, change line 23/24 with:
focusRectangle.Width = original.Width / imageX;
focusRectangle.Height = original.Height / imageY;
 

Logge dich ein, um hier zu kommentieren!