Her ne kadar Asp.NET, Asp.NET MVC gibi yazılarım da C# kullansakta, son zamanlar da C# diline özel yazı yazmaz oldum.Son günlerde üzerinde çalıştığım bir masaüstü programında Image nesnesinin boyutunu programatik olarak ayarlama ihtiyacı oldu.Bu durum üzerine yaptığım araştırmalar neticesinde bulduğum ve denemiş olduğum bir sınıfı sizlere sunacağım.
Eğer Image nesnesinin boyutunu programatik olarak değiştirmek istiyorsanız aşağıdaki sınıfı kullanabilirsiniz.
public static class ResimBoyutlandirici
{
public static System.Drawing.Image
ResimBoyutlandir(System.Drawing.Image img, Size boyut)
{
int kaynakEn = img.Width;
int KaynakBoy = img.Height;
float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;
nPercentW = ((float)boyut.Width / (float)kaynakEn);
nPercentH = ((float)boyut.Height / (float)KaynakBoy);
if (nPercentH < nPercentW)
{
nPercent = nPercentH;
}
else
{
nPercent = nPercentW;
}
int HedefEn = (int)(kaynakEn * nPercent);
int HedefBoy = (int)(KaynakBoy * nPercent);
Bitmap b = new Bitmap(HedefEn, HedefBoy);
Graphics g = Graphics.FromImage((System.Drawing.Image)b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(img, 0, 0, HedefEn, HedefBoy);
g.Dispose();
return (System.Drawing.Image)b;
}
}
Static yapıdaki bu sınıf içerisinde bulunan metod, Image tipindeki parametresine aldığı nesnenin boyutlarını, diğer parametredeki Size nesnesinin boyutlarına göre ayarlayıp geri göndermektedir.
Faydalanmanız dileğiyle..