19 Eylül 2009 Cumartesi

C# ile Resim Boyutlandırma (Image Resizing C#)

Resim boyutlandırma işlemine birçok uygulamada ihtiyaç duyabiliriz. ASP.NET uygulamalarında da thumbnail oluştururken resim boyutlandırmaya ihtiyaç duyarız. Bu ihtiyacı karşılamak için resim dosyası ile birlikte hedef çözünürlük bilgisini parametre alan ve istenilen boyutta yeni bir resim nesnesi üretip geriye döndüren method yazacağız. Aşağıdaki kod bloğunda yer alan methodu resim boyutlandırma işlemi için aynen kullanabilirsiniz.

public Image ReSize(Image resim, Size hedefBoyut)
{
return new Bitmap(resim, hedefBoyut);
}

Bu yöntemin kaliteli bir çıktı ürettiğini söylemek pek mümkün değil. Aşağıdaki diğer yöntem daha kaliteli sonuçlar üretecektir fakat bu arada daha fazla CPU kullanımına ihtiyaç duyacaktır.

public Image ReSize(Image resim, Size hedefBoyut)
{
Bitmap bmpResim = new Bitmap(hedefBoyut.Width,hedefBoyut.Height, PixelFormat.Format24bppRgb);
bmpResim.SetResolution(resim.HorizontalResolution, resim.VerticalResolution);

Graphics grResim = Graphics.FromImage(bmpResim);
grResim.InterpolationMode = InterpolationMode.HighQualityBicubic;
grResim.FillRectangle(Brushes.White, 0, 0, hedefBoyut.Width,hedefBoyut.Height);

grResim.DrawImage(resim, new Rectangle(0, 0, hedefBoyut.Width,hedefBoyut.Height), new Rectangle(0, 0, resim.Width, resim.Height), GraphicsUnit.Pixel);
return bmpResim;
}

Örneği uygularken, System.Drawing.dll'i referanslara ekledikten sonra aşagıdaki namespace'leri kod sayfanıza eklemeyi unutmayın.
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;

Hiç yorum yok: