در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

نحوه Crop کردن تصاویر در زبان سی شارپ

سلام به تمامی دوستان عزیز ITPRO ای، با یک نکته دیگه در زبان سی شارپ در خدمت شما عزیزان هستم. در این نکته قصد دارم خدمت شما نحوه Crop کردن تصاویر در زبان سی شارپ رو توضیح بدم. Crop کردن عملیات بریدن عکس در سایز دلخواه هست و این عملیات کاربرد زیادی در برنامه های تحت وب که تصاویر جهت نمایش صحیح Responsive می بایست در سایز مشخص نمایش داده شوند کاربرد دارد. در زیر کدی که برای این کار استفاده میشه رو مشاهده می کنید:

public class ImageTools
{
    private Image CropImage(Image originalImage, int width, int height)
    {
        try
        {
            var targetResize = CalculateResizeWith(originalImage.Width, originalImage.Height, width, height);
            var resizedImage = ResizeImage(originalImage, targetResize);

            var recX = (resizedImage.Width - width) / 2;
            var recY = (resizedImage.Height - height) / 2;
            var bitmap = new Bitmap(resizedImage);

            var clone = bitmap.Clone(new Rectangle(recX, recY, width, height), PixelFormat.DontCare);
            return clone;
        }
        catch (Exception e)
        {
            return null;
        }
    }

    private int CalculateResizeWith(int originalWith, int originalHeight, int targetWidth, int targetHeight)
    {
        int destHeight = 0;
        int destWidth = 0;
        while (destHeight < targetHeight)
        {
            double percent = (double)originalWith / targetWidth;
            destWidth = (int)(originalWith / percent);
            destHeight = (int)(originalHeight / percent);
            targetWidth += 10;
        }

        return destWidth;
    }

    private 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;
    }
}

در کد بالا، متدی داریم به نام CropImage که سه پارامتر originalImage که تصویر اصلی ما هست و width و height که اندازه مورد نظر جهت Crop کردن تصویر هست به عنوان ورودی قبول می کند. در زمان Crop کردن، ابتدا اندازه تصویر، متناسب با اندازه ای که برای Crop کردن وارد شده تغییر می کند تا زمان Crop کردن بتوانیم حداکثر تصویر اصلی رو در تصویر Crop شده بگنجانیم. سپس از تصویر Resize شده، از نقطه مرکزی عکس، بر اساس سایز مورد نظر تصویر برش داده شده و به عنوان خروجی برگردانده می شود. متدی که برای Crop کردن استفاده میشه، متد Clone از کلاس Bitmap هست. امیدوارم که این نکته مورد استفاده شما دوستان عزیز قرار بگیرد. ITPRO باشید

نویسنده : حسین احمدی

منبع : جزیره برنامه نویسی وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....