حسین احمدی
بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

آموزش Resize کردن تصاویر در سی شارپ

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

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

برای یادگیری و آموزش سی شارپ ( آموزش زبان برنامه نویسی سی شارپ ) رایگان به این لینک بروید

کد مورد نظر به صورت زیر هست:

namespace ITPro.Codes
{
    using System;
    using System.Drawing;
    using System.Drawing.2D;

    public class ImageTools
    {
        public Image ResizeImage(Image original, int targetWidth)
        {
            var percent = (double)original.Width / targetWidth;
            var destWidth = (int)(original.Width / percent);
            var destHeight = (int)(original.Height / percent);

            var b = new Bitmap(destWidth, destHeight);
            var g = Graphics.FromImage(b);
            try
            {
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                g.SmoothingMode = SmoothingMode.HighQuality;
                g.PixelOffsetMode = PixelOffsetMode.HighQuality;
                g.CompositingQuality = CompositingQuality.HighQuality;

                g.DrawImage(original, 0, 0, destWidth, destHeight);
            }
            finally
            {
                g.Dispose();
            }

            return b;
        }
    }
}

متدی که در کد بالا معرفی شد، یک عکس و طول مورد نظر برای تغییر سایز تصویر رو میگیره، در داخل متد، عرض تصویر بر اساس طول وارد شده و طول محاسبه شده و تصویر به اندازه مورد نظر تغییر داده میشه و به عنوان خروجی برگردونده میشه. دلیل محاسبه خودکار عرض تصویر، جلوگیری از کشیدگی تصویر بعد از Resize کردن هست. امیدوارم این نکته مورد توجه شما قرار گرفته باشه.


حسین احمدی
حسین احمدی

بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...

نظرات