zoukankan      html  css  js  c++  java
  • 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();
            }
        }


    }

  • 相关阅读:
    HTTPS 深入浅出
    Elasticsearch Analyzer 的内部机制
    Elasticsearch 查看token分析过程
    elasticsearch教程大全
    【DDD】领域驱动设计实践 —— 框架实现
    阿里盒马领域驱动设计实践
    kubernetic
    安装k8s dashboard
    单机版kubernetes1.13安装
    Kubernetes踩坑记录
  • 原文地址:https://www.cnblogs.com/fogwang/p/2666580.html
Copyright © 2011-2022 走看看