Diese Funktion ändert die größe eines Bilds und gibt es als Bitmap zurück. Hier ist die neue Breite veränderbar. Bei der Angabe einer neuen Breite wird das Bild so verkleinert/vergrößert das das Verhältnis eingehalten wird.
Bei der Veränderung der Größe wird das Bild interpoliert so das die Qualität erhalten bleibt.
Dies ist eine Übersetzung des VB.NET Snippets von Khartak in C#.
Hier das Orginal: http://dotnet-snippets.de/dns/bildgroesse-im-verhaeltnis-veraendern-interpoliert-SID337.aspx
/// <summary>
/// Resizes the pic by width.
/// </summary>
/// <param name="sourceImage">The source image.</param>
/// <param name="newWidth">The new width.</param>
/// <returns></returns>
private static Bitmap ResizePicByWidth(Image sourceImage, double newWidth)
{
double sizeFactor = newWidth/sourceImage.Width;
double newHeigth = sizeFactor*sourceImage.Height;
Bitmap newImage = new Bitmap((int) newWidth, (int) newHeigth);
using (Graphics g = Graphics.FromImage(newImage))
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(sourceImage, new Rectangle(0, 0, (int) newWidth, (int) newHeigth));
}
return newImage;
}
Kommentare zum Snippet