C# – Bild skalieren
Dezember 11, 2009 - von: Patrick
Mit der folgenden Funktionen können Sie binnen Sekunden die Größe eines Bildes ändern. Sie müssen lediglich zwei Parameter zu der Funktion ResizeMe mitgeben einmal das Quellbild und die neue Breite.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private static Bitmap ResizeMe(Image srcImg, double dblWidth)
{
// Faktor berechnen
double dblFac = dblWidth / srcImg.Width;
double dblHeight = dblFac * srcImg.Height;
// Bild bearbeiten
Bitmap resizedImg = new Bitmap((int)dblWidth, (int)dblHeight);
using (Graphics gNew = Graphics.FromImage(resizedImg))
{
gNew.InterpolationMode = InterpolationMode.HighQualityBicubic;
gNew.DrawImage(srcImg, new Rectangle(0, 0, (int)dblWidth, (int)dblHeight));
}
return resizedImg;
}
private void bResize_Click(object sender, EventArgs e)
{
Image img = new Bitmap(@"C:\img.png");
ResizeMe(img, 200);
}
}
}