تغییر اندازه تصویر قبل از آپلود کردن در ASP.Net

شنبه 14 شهریور 1394

در این پست نشان خواهیم داد که چگونه توسط کنترل FileUpload بتوانیم یک عکس را قبل از Upload روی سرور در ASP.NET تغییر اندازه دهیم.

تغییر اندازه تصویر قبل از آپلود کردن  در ASP.Net

برای این کار ما از بعضی کتابخانه ها و متدها استفاده می کنیم.

یک پروژه ASP.NET ایجاد کرده و یک web form اضافه کنید.

کدهای زیر را در صفحه aspx اضافه کنید.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server" dir="rtl">
    <div>
        <asp:FileUpload ID="FileUpload1"  runat="server" />
        <br />
        <asp:Button ID="Button1" runat="server" Text="آپلود" onclick="Button1_Click" />
        <br />
        <!-- To display the Size of image -->
        <span>قبل از تغییر اندازه: </span>
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
        <br />
        <span>بعد از تغییر اندازه: </span>
        <asp:Label ID="Label2" runat="server" Text=""></asp:Label>
        <br />
        <!-- To display the Resize Image -->
        <asp:Image ID="Image1" runat="server" />
    </div>
    </form>
</body>
</html>

3- اکنون از کدهای زیر برای رویداد کلیک دکمه آپلود در صفحه aspx.cs استفاده کنید:

protected void Button1_Click(object sender, EventArgs e)  
{  
    // Check file exist or not  
    if (FileUpload1.PostedFile != null)  
    {  
        // Check the extension of image  
        string extension = Path.GetExtension(FileUpload1.FileName);  
        if (extension.ToLower() == ".png" || extension.ToLower() == ".jpg")  
        {  
            Stream strm=FileUpload1.PostedFile.InputStream;  
            using (var image = System.Drawing.Image.FromStream(strm))  
            {  
                // Print Original Size of file (Height or Width)   
                Label1.Text = image.Size.ToString();  
                int newWidth = 240; // New Width of Image in Pixel  
                int newHeight = 240; // New Height of Image in Pixel  
                var thumbImg = new Bitmap(newWidth, newHeight);  
                var thumbGraph = Graphics.FromImage(thumbImg);  
                thumbGraph.CompositingQuality = CompositingQuality.HighQuality;  
                thumbGraph.SmoothingMode = SmoothingMode.HighQuality;  
                thumbGraph.InterpolationMode = InterpolationMode.HighQualityBicubic;  
                var imgRectangle = new Rectangle(0, 0, newWidth, newHeight);  
                thumbGraph.DrawImage(image, imgRectangle);  
                // Save the file  
                string targetPath = Server.MapPath(@"~\Images\") + FileUpload1.FileName;  
                thumbImg.Save(targetPath, image.RawFormat);  
                // Print new Size of file (height or Width)  
                Label2.Text = thumbImg.Size.ToString();  
                //Show Image  
                Image1.ImageUrl = @"~\Images\" + FileUpload1.FileName;  
            }  
        }  
    }  
}

نکته: قبل از استفاده از کدهای بالا، فضای نام های (name space) زیر را اضافه کنید:

using System.Drawing;  
using System.Drawing.Drawing2D;  
using System.IO; 

اکنون برنامه را اجرا کرده و یک عکس آپلود کنید:

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید