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

آموزش 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 کردن هست. امیدوارم این نکته مورد توجه شما قرار گرفته باشه. ITPRO باشید


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

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

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

28 دی 1394 این مطلب را ارسال کرده

نظرات