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]

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

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

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!