ASP.NET 图片压缩,等比压缩图片

ASP.NET 图片压缩,等比压缩图片: 

public class shrink
    {
        /// <summary>
        /// 矩形框内部图片原比例压缩
        /// </summary>
        /// <param name="AbsoluteFileName">原路径</param>
        /// <param name="SaveServer">新存放路径</param>
        /// <param name="H">对应矩形高度</param>
        /// <param name="W">对应矩形宽度</param>
        /// <returns></returns>
        public string PicShrink(string AbsoluteFileName, string SaveServer,int H,int W)
        {
           
            using (Image img = Image.FromFile(AbsoluteFileName))
            {
                int OriginalHeight = img.Height; //原图高度
                int OriginalWeight = img.Width; //原图宽度
                int NewHeight = OriginalHeight;
                int NewWeight = OriginalWeight;
                double p = 0;//缩放比例
               
                //高度压缩比例小或相等[宽和高都溢出]
                if ((double)H / (double)OriginalHeight <= (double)W / (double)OriginalWeight)
                {
                    NewHeight = H;
                    p = (double)H / (double)OriginalHeight;
                    NewWeight = (int)Math.Round(p * OriginalWeight);
                }
                //宽度压缩比例小[宽和高都溢出]
                if ((double)H / (double)OriginalHeight > (double)W / (double)OriginalWeight)
                {
                    NewWeight = W;
                    p = (double)W / (double)OriginalWeight;
                    NewHeight = (int)Math.Round(p * OriginalHeight);
                }
                using (Bitmap bm = new Bitmap(NewWeight, NewHeight))
                {
                    Graphics grap = Graphics.FromImage(bm);
                    grap.Clear(Color.Transparent);  //指定图片背景色
                    Rectangle rt = new Rectangle(0, 0, NewWeight, NewHeight);
                    grap.DrawImage(img, rt);
                    string MathPath = System.Web.HttpContext.Current.Server.MapPath(SaveServer);
                    if (File.Exists(MathPath))
                    {
                        File.Delete(MathPath);
                    }
                    bm.Save(MathPath, ImageFormat.Jpeg);
                    bm.Dispose();
                    grap.Dispose();
                }
            }
            return SaveServer;
        }
    }

 

qq讨论群  :  171560784

转载于:https://www.cnblogs.com/kezhiping/archive/2013/04/28/3048969.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值