• asp.net上传图片压缩


    转自csdn论坛,正确已经测试,非常好用。只不过引用的时候有点问题,图片没有释放,见下面红字部分。
    我抄一份代码给你,清清月儿的.  
    using System;
    using System.IO;
    using System.Drawing;
    using System.Drawing.Imaging;

    public class ImageThumbnail
    {
       
    public Image ResourceImage;
       
    private int ImageWidth;
       
    private int ImageHeight;
       
    public string ErrorMessage;

       
    public ImageThumbnail(string ImageFileName)
        {
            ResourceImage
    = Image.FromFile(ImageFileName);
            ErrorMessage
    = "";
        }

       
    public bool ThumbnailCallback()
        {
           
    return false;
        }


       
    // 方法1,按大小
        public bool ReducedImage(int Width, int Height, string targetFilePath)
        {
           
    try
            {
                Image ReducedImage;
                Image.GetThumbnailImageAbort callb
    = new Image.GetThumbnailImageAbort(ThumbnailCallback);
                ReducedImage
    = ResourceImage.GetThumbnailImage(Width, Height, callb, IntPtr.Zero);
                ReducedImage.Save(@targetFilePath, ImageFormat.Jpeg);
                ReducedImage.Dispose();
               
    return true;
            }
           
    catch (Exception e)
            {
                ErrorMessage
    = e.Message;
               
    return false;
            }
        }


       
    // 方法2,按百分比  缩小60% Percent为0.6 targetFilePath为目标路径
        public bool ReducedImage(double Percent, string targetFilePath)
        {
           
    try
            {
                Image ReducedImage;
                Image.GetThumbnailImageAbort callb
    = new Image.GetThumbnailImageAbort(ThumbnailCallback);
                ImageWidth
    = Convert.ToInt32(ResourceImage.Width * Percent);
                ImageHeight
    = (ResourceImage.Height)*ImageWidth/ ResourceImage.Width;//等比例缩放
                ReducedImage = ResourceImage.GetThumbnailImage(ImageWidth, ImageHeight, callb, IntPtr.Zero);
                ReducedImage.Save(@targetFilePath, ImageFormat.Jpeg);
                ReducedImage.Dispose();
               
    return true;
            }
           
    catch (Exception e)
            {
                ErrorMessage
    = e.Message;
               
    return false;
            }
        }


    }

    后台代码:
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    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;
    public partial class _Default : System.Web.UI.Page
    {

       
    protected void Page_Load(object sender, EventArgs e)
        {

        }
       
    protected void bt_upload_Click(object sender, EventArgs e)
        {
           
    try
            {
               
    if (FileUpload1.PostedFile.FileName == "")
                {
                   
    this.lb_info.Text = "请选择文件!";
                }
               
    else
                {
                   
    string filepath = FileUpload1.PostedFile.FileName;
                   
    string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1);
                   
    string serverpath1 = Server.MapPath("images/") + filename;
                   
    string serverpath2 = Server.MapPath("images/") + System.DateTime.Now.ToString("yyy-MM-dd-hh-mm-ss") + Session.SessionID + filename;
                    FileUpload1.PostedFile.SaveAs(serverpath1);
                    ImageThumbnail img
    = new ImageThumbnail(filepath);
                    img.ReducedImage(
    0.4, serverpath2);//0.4表示缩小40%
                    img.ResourceImage.Dispose(); //这里要释放一下
                    this.lb_info.Text = "上传成功!";
                }
            }
           
    catch (Exception error)
            {
               
    this.lb_info.Text = "上传发生错误!原因:" + error.ToString();
            }
        }


    }

  • 相关阅读:
    简述智障版本搜索引擎架构
    kaggle PredictingRedHatBusinessValue 简单的xgboost的交叉验证
    机器学习速查表
    World final 2017 题解
    微博爬虫
    喵哈哈村的魔法考试 Round #21 (Div.2) 题解
    喵哈哈村的魔法考试 Round #20 (Div.2) 题解
    Tinkoff Challenge
    常用的机器学习&数据挖掘知识(点)总结
    喵哈哈村的魔法考试 Round #19 (Div.2) 题解
  • 原文地址:https://www.cnblogs.com/fogwang/p/2666580.html
Copyright © 2020-2023  润新知