Sprache: C#
Mit dieser Funktion kann man ein Bild in mehrere zerschneiden.
Benutzung:
SplitImage(@"C:MeineBilderChicago.jpg", 128, 128, @"C:MeineBilderSplit");
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");
}
}
}
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");
}
}
}
Alte URL:
/snippet/bild-splitten/714
Bad parameterdescription and[b] wrong code[/b] 🙁 …
imageX and imageY is the amount of splits. e.g: I have a 510×476 image with 34×34 icons, so imageX = 510/34 = 15 ; imageY = 476/34 = 14.
[b]To get it working[/b], change line 23/24 with:
focusRectangle.Width = original.Width / imageX;
focusRectangle.Height = original.Height / imageY;