ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

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

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

تغییر سایز عکس در سی شارپ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;
}

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

نظرات (۳)

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

 myThumbnail.Save(path + "/" + fileName, ImageFormat.Jpeg);
پاسخ:
با عرض سلام
ممنون از اینکهراهنمایی فرمودید

سلام

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

پاسخ:
با عرض سلام

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

موفق باشید

با سلام

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

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی
up
ما را در گوگل محبوب کنید