ساده ترین روش Resize کردن تصویر در سی شارپ
در این پست قصد داریم یک روش بسیار ساده برای ریسایز کردن تصاویر در سی شارپ رو بهتون آموزش بدیم
برای این کار شما میبایست در ابتدا فضا های نامی زیر را در پروژه ادد کنید
using System.Drawing;
using System.Drawing.Imaging;
حالا ما یک تابع مینویسیم که در ورودی خود یک عکس و ابعاد جدید را میگیرد
public Image Resize(Image source, int width, int height)
{
if (source.Width == width && source.Height == height) return source;
var result = new Bitmap(width, height, PixelFormat.Format24bppRgb);
result.SetResolution(source.HorizontalResolution, source.VerticalResolution);
using (var g = Graphics.FromImage(result))
g.DrawImage(source, new Rectangle(0, 0, width, height), new Rectangle(0, 0, source.Width, source.Height), GraphicsUnit.Pixel);
return result;
}
این تابع در ابتدا عرض و ارتفاع عکس وارد شده را بررسی ومیکند و در صورتی که برابر عرض و ارتفاع وارد شده باشد ، تصویر را به همان شکل باز میگرداند
در غیر اینصورتصویر را بر روی Bitmap ایجاد شده رسم و ان Bitmap را به خروجی ارسال میکند
مثال استفاده :
string _Path = "e:\\hyperheader.jpg";
Image img = Resize(Image.FromFile(_Path),600,300);
pictureBox1.Image = img;
که تصویر جدید را در img ذخیره کرده ایم و سپس ان را در Picturebox نمایش می دهیم
برای ذخیره کافی است متد Save را در img فراخوانی کنیم
برای این کار شما میبایست در ابتدا فضا های نامی زیر را در پروژه ادد کنید
using System.Drawing;
using System.Drawing.Imaging;
حالا ما یک تابع مینویسیم که در ورودی خود یک عکس و ابعاد جدید را میگیرد
public Image Resize(Image source, int width, int height)
{
if (source.Width == width && source.Height == height) return source;
var result = new Bitmap(width, height, PixelFormat.Format24bppRgb);
result.SetResolution(source.HorizontalResolution, source.VerticalResolution);
using (var g = Graphics.FromImage(result))
g.DrawImage(source, new Rectangle(0, 0, width, height), new Rectangle(0, 0, source.Width, source.Height), GraphicsUnit.Pixel);
return result;
}
این تابع در ابتدا عرض و ارتفاع عکس وارد شده را بررسی ومیکند و در صورتی که برابر عرض و ارتفاع وارد شده باشد ، تصویر را به همان شکل باز میگرداند
در غیر اینصورتصویر را بر روی Bitmap ایجاد شده رسم و ان Bitmap را به خروجی ارسال میکند
مثال استفاده :
string _Path = "e:\\hyperheader.jpg";
Image img = Resize(Image.FromFile(_Path),600,300);
pictureBox1.Image = img;
که تصویر جدید را در img ذخیره کرده ایم و سپس ان را در Picturebox نمایش می دهیم
برای ذخیره کافی است متد Save را در img فراخوانی کنیم