【问题标题】:how to upload image with reduced size如何上传缩小尺寸的图片
【发布时间】:2011-10-04 17:27:34
【问题描述】:

我正在使用 asp.net fileupload 控件来上传图像,但在这里我想自动将大小重新调整为 250*200px。 请建议我在我的代码中添加什么。 我是asp.net的新手。

protected void Button1_Click(object sender, EventArgs e)
        {   string s =@"~\img\"+FileUpload1.FileName;
            FileUpload1.PostedFile.SaveAs(Server.MapPath(s));


          }

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    我还发现这段代码对调整大小很有用

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.IO;
    using System.Data.SqlClient;
    using System.Drawing.Imaging;
    using System.Drawing.Drawing2D;
    using System.Drawing;
    
    public partial class ImageUpload : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void btnUpload_Click(object sender, EventArgs e)
        {
    
            string ImageName = txtName.Text;
            if (FileUpLoad1.PostedFile != null && FileUpLoad1.PostedFile.FileName != null)
            {
    
                string strExtension = System.IO.Path.GetExtension(FileUpLoad1.FileName);
                if ((strExtension.ToUpper() == ".JPG") | (strExtension.ToUpper() == ".GIF"))
                {
                    // Resize Image Before Uploading to DataBase
                    FileUpload fi = new FileUpload();
                    fi = FileUpLoad1;
    
                    System.Drawing.Image imageToBeResized = System.Drawing.Image.FromStream( fi.PostedFile.InputStream);
                    int imageHeight = imageToBeResized.Height;
                    int imageWidth = imageToBeResized.Width;
                    int maxHeight = 120;
                    int maxWidth = 160;
                    imageHeight = (imageHeight * maxWidth) / imageWidth;
                    imageWidth = maxWidth;
    
                    if (imageHeight > maxHeight)
                    {
                        imageWidth = (imageWidth * maxHeight) / imageHeight;
                        imageHeight = maxHeight;
                    }
    
                    Bitmap bitmap = new Bitmap(imageToBeResized, imageWidth, imageHeight);
                    System.IO.MemoryStream stream = new MemoryStream();
                    bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
                    stream.Position = 0;
                    byte[] image = new byte[stream.Length + 1];
                    stream.Read(image, 0, image.Length);
    
                    // Create SQL Connection 
                    SqlConnection con = new SqlConnection();
                    con.ConnectionString = ConfigurationManager.ConnectionStrings["Return_AuthorizationsConnectionString"].ConnectionString;
    
                     SqlCommand cmd = new SqlCommand();
                    cmd.CommandText = "INSERT INTO Images(ImageName,Image) VALUES (@ImageName,@Image)";
                    cmd.CommandType = CommandType.Text;
                    cmd.Connection = con;
    
                    SqlParameter ImageName1 = new SqlParameter("@ImageName", SqlDbType.VarChar, 50);
                    ImageName1.Value = ImageName.ToString();
                    cmd.Parameters.Add(ImageName1);
    
                    SqlParameter UploadedImage = new SqlParameter("@Image", SqlDbType.Image, image.Length);
                    UploadedImage.Value = image;
                    cmd.Parameters.Add(UploadedImage);
                    con.Open();
                    int result = cmd.ExecuteNonQuery();
                    con.Close();
                    if (result > 0)
                        lblMessage.Text = "File Uploaded";
                   GridView1.DataBind();
                }
    
                }
    
            }
    }
    

    【讨论】:

      【解决方案2】:

      在服务器上获取图像后,您可以将其调整大小保存,并删除原始图像。

      仅用于调整大小的示例代码

      http://weblogs.asp.net/gunnarpeipman/archive/2009/04/02/resizing-images-without-loss-of-quality.aspx

      这是一个完整的项目,其中包含用于处理图像的源代码,包括调整大小。

      http://www.codeproject.com/KB/web-image/ASPImaging1.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-02
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        • 2012-11-20
        • 1970-01-01
        • 2011-07-08
        • 1970-01-01
        相关资源
        最近更新 更多