تغییر سایز عکس در سی شارپ

تغییر سایز عکس در سی شارپ

بسم الله الرحمن الرحیم

تغییر سایز عکس در سی شارپx

در بسیاری از پروژه ها ممکن است شما نیاز داشته باشید تصویر ارسالی از سوی کاربر را تغییر اندازه دهید و با یک سایز جدید و حجم کاهش یافته بر روی سرور ذخیره نمایید. کلاسی را برای این منظور در اینجا قرار داده ایم که به سادگی می توانید از آن استفاده کنید.

متد اصلی ما به صورت زیر خواهد بود

public void SaveImage(HttpPostedFileBase thumbnailImageUpload,int width, int height )
{
  var path = Server.MapPath("~/Images/Venue/thumbnailUpload");
       Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
       Bitmap myBitmap = new Bitmap(thumbnailImageUpload.InputStream);
       Image myThumbnail = myBitmap.GetThumbnailImage(
       width, height, myCallback, IntPtr.Zero);
       var fileName = thumbnailImageUpload.FileName;
myThumbnail.Save(path + "/" + fileName);
}

thumbnailImageUpload  نام کنترل FileUpload می باشد که توسط آن فایل ما به این متد معرفی شده است.

توسط دستور Server.MapPath مسیری را که باید تصویر ما در آن ذخیره شود مشخص می کنیم.

بسم الله الرحمن الرحیم

تغییر سایز عکس در سی شارپx

در بسیاری از پروژه ها ممکن است شما نیاز داشته باشید تصویر ارسالی از سوی کاربر را تغییر اندازه دهید و با یک سایز جدید و حجم کاهش یافته بر روی سرور ذخیره نمایید. کلاسی را برای این منظور در اینجا قرار داده ایم که به سادگی می توانید از آن استفاده کنید.

متد اصلی ما به صورت زیر خواهد بود

public void SaveImage(HttpPostedFileBase thumbnailImageUpload,int width, int height )
{
  var path = Server.MapPath("~/Images/Venue/thumbnailUpload");
       Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
       Bitmap myBitmap = new Bitmap(thumbnailImageUpload.InputStream);
       Image myThumbnail = myBitmap.GetThumbnailImage(
       width, height, myCallback, IntPtr.Zero);
       var fileName = thumbnailImageUpload.FileName;
myThumbnail.Save(path + "/" + fileName);
}

thumbnailImageUpload  نام کنترل FileUpload می باشد که توسط آن فایل ما به این متد معرفی شده است.

توسط دستور Server.MapPath مسیری را که باید تصویر ما در آن ذخیره شود مشخص می کنیم.

height , width تصویر نهایی را به متد خود داده ایم تا بر اساس این سایز تصویر جدید ما ذخیره شود.

تصویر ارسالی را به یک تصویر bitmap تبدیل کرده ایم تا سایز آن را تغییر دهیم و با یک نسخه جدید آن را ذخیره نماییم.

در نهایت تصویر ما توسط متد myThumbnail.Save در مسیر مشخص شده ذخیره شده است.

در متد بالا تابعی را با نام ThumbnailCallback فراخوانی کرده ایم، این متد را کافی است به صورت زیر تعریف کنید.

public bool ThumbnailCallback()
{
return false;
}

برنامه کامل شده است و می توانید به سادگی از آن استفاده نمایید.

نظرات

  • Hannah Martinez
    احمدی
    دو شنبه 11 دی 1278 - 0:00

    با سلام

    این namespace خودش بصورت پیش فرض using شده، لطفا برای روشن تر شدن موضوع یه نمونه کاربردی از این متد بزارید

  • Hannah Martinez
    احمدی
    دو شنبه 11 دی 1278 - 0:00

    سلام

    از این متد استفاده کردم ، در توضیح مطلب اشاره شده که thumbnailImageUpload اسم یک فایل آپلوده ، خب من وقتی این متد را فراخوانی میکنم با فایل آپلود به آرگومان اول خطا میگیره!!! لطفا راهنمایی کنید

    • Judith Bell
      پاسخ
      اسماعیلشیدایی
      دو شنبه 11 دی 1278 - 0:00

      با عرض سلام


      HttpPostedFileBase در فضا یا همان namespace مربوط به System.Web قرار دارد، باید این namespace به پروژه اضافه کنید.

      موفق باشید

  • Hannah Martinez
    mahdi
    دو شنبه 11 دی 1278 - 0:00

    ممنون خیلی خوب بود

    ولی من باید این(ImageFormat.Jpeg) رو اضافه می کردم موقع ذخیره کردن(خط آخر) تا درست می شد:

     myThumbnail.Save(path + "/" + fileName, ImageFormat.Jpeg);

    • Judith Bell
      پاسخ
      اسماعیلشیدایی
      دو شنبه 11 دی 1278 - 0:00

      با عرض سلام
      ممنون از اینکهراهنمایی فرمودید

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس