ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی “ ورود به حساب” کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمیشود، اینجا را کلیک کنید.





نمایش نتایج: از 1 به 1 از 1
  1. #1
    mohammadrk88
    كاربر عادي
    تاریخ عضویت
    2014 Jan
    نوشته ها
    1
    0
    1

    تغییر سایز تصاویر در #c

    با سلام خدمت دوستان
    مقاله زیر آموزش تغییر سایز تصویر به صورت پویا با زبان برنامه نویسی #C می باشد.
    امیدوارم برای دوستان مفید واقع شود.

    اگر دقت کرده باشید بسیاری از سایت ها برای نمایش تصاویر سایت به کاربر از چندین سایز تصویر استفاده می کنند. برای مثال، اگر قصد داشته باشید برای پروفایل کاربران، به آن ها اجازه آپلود عکس بدهید که به عنوان آواتار کاربر در سایت از آن تصویر استفاده کنید باید این تصویر را در چند سایز مختلف به کاربران نمایش دهید. برای این کار دو راه وجود دارد.

    • راه اول: تغییر سایز تصویر در هنگام لود صفحه
    • راه دوم: ذخیره چند سایز از یک تصویر در سایت

    راه اول باعث افزایش زمان بارگذاری صفحه می شود و راه دوم باعث افزایش فضای سایت. در نتیجه هر کدام از این دو راه معایب و مزایای خود را دارند که با توجه به شرایط، شما باید تصمیم بگیرید کدام راه را انتخاب کنید.
    ما در این مقاله روش دوم را اجرا خواهیم کرد. هرچند اگر شما به روند کلی تغییر سایز تصویر آشنا باشید به سادگی می توانید روش اول را نیز پیاده سازی کنید. ما فرض می کنیم که یک عکس در مسیری خاص وجود دارد و قصد داریم این سایز این تصویر را تغییر داده و در مسیر جدید ذخیره کنیم در واقع ما قصد داریم به صورت پویا یک نسخه بند انگشتی (Thumbnail) از عکس مورد نظر بسازیم. برای این کار با احتیاج به فضاهای نام (Namespace) زیر داریم:

    using System.Drawing;
    using System.Drawing.Imaging;
    using System.IO;



    ما یک متد با نام ResizeImage می سازیم که از این به بعد هر کجا احتیاج به تغییر سایز یک تصویر داشتیم به سادگی این متد را صدا کنیم و از تکرار کد بکاهیم. این متد چهار ورودی دارد

    • imagePath: آدرس فیزیکی تصویری که قصد داریم سایزش را تغییر دهیم.
    • width: طول تصویر جدی
    • height: ارتفاع تصویر جدید
    • newPathToSave: مسیری که قصد داریم تصویر جدید را در آن ذخیره کنیم.

    در ابتدا باید تصویر را تبدیل به Byte کنیم و سپس یک آبجکت از کلاس Image بسازیم. و در آخر به سادگی با استفاده از کلاس Bitmap تصویر با ابعاد جدید را ایجاد کنیم.

    public static void ResizeImage(string imagePath, int width, int height, string newPathToSave)
    {
    //example: imagePath = "C:\Images\Original\sample.jpg
    //example: newPathToSave = "C:\Images\Thumbnail\sample.jpg


    MemoryStream memory = new MemoryStream(File.ReadAllBytes(imagePath));
    Image img = Image.FromStream(memory);
    ImageFormat fmImageFormat = img.RawFormat;

    Bitmap bmpResized = new Bitmap(img, width, height);
    }



    تا اینجای کار ما تصویر جدید را با چند خط کد ساخته ایم و فقط باید آن را در مسیر جدید ذخیره کنیم. برای این کار می توانیم از متد Save کلاس Bitmap استفاده کنیم.

    bmpResized.Save(memory, fmImageFormat);
    bmpResized.Save(newPathToSave);

    و در آخر باید متد Dispose را برای از بین بردن تصاویر استفاده کنیم. به یاد داشته باشید در هنگام کار با تصاویر، زمانی که کار به پایان رسید متد این متد را بر روی آبجکت هایی که ساخته این صدا کنید تا فضایی که توسط این آبجکت ها اشغال شده مجدداً آزاد شود.

    [CSHARP]img.Dispose();
    bmpResized.Dispose();



    و به همین سادگی!!!
    کد کامل کلاس:

    public static void ResizeImage(string imagePath, int width, int height, string newPathToSave)
    {
    MemoryStream memory = new MemoryStream(File.ReadAllBytes(imagePath));
    Image img = Image.FromStream(memory);
    ImageFormat fmImageFormat = img.RawFormat;

    Bitmap bmpResized = new Bitmap(img, width, height);

    bmpResized.Save(memory, fmImageFormat);
    bmpResized.Save(newPathToSave);
    img.Dispose();
    bmpResized.Dispose();
    }






    [/CSHARP]


    منبع:
    [برای نمایش لینک باید عضو شوید. ]
    [برای نمایش لینک باید عضو شوید. ]
  2. 1
نمایش نتایج: از 1 به 1 از 1

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

Content Relevant URLs by vBSEO 3.6.0 RC 2