.net上传图片按比例自动缩小或放大

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Common.Utility
{
    /// <summary>
    /// 上传图片按比例自动缩小或放大
    /// </summary>
    public class ImageBigOrSmall
    {
        <summary>

        /// 按比例缩小图片,自动计算宽度

        /// </summary>

        /// <param name="strOldPic">源图文件名(包括路径)</param>

        /// <param name="strNewPic">缩小后保存为文件名(包括路径)</param>

        /// <param name="intHeight">缩小至高度</param>

        public static void SmallPicWidth(string strOldPic, string strNewPic, int intHeight)
        {

            System.Drawing.Bitmap objPic, objNewPic;

            try
            {

                objPic = new System.Drawing.Bitmap(strOldPic);

                int intWidth = (intHeight / objPic.Height) * objPic.Width;

                objNewPic = new System.Drawing.Bitmap(objPic, intWidth, intHeight);

                objNewPic.Save(strNewPic);

            }

            catch (Exception exp) { throw exp; }

            finally
            {

                objPic = null;

                objNewPic = null;

            }

        }

        /// <summary>

        /// 按比例缩小图片,自动计算高度

        /// </summary>

        /// <param name="strOldPic">源图文件名(包括路径)</param>

        /// <param name="strNewPic">缩小后保存为文件名(包括路径)</param>

        /// <param name="intWidth">缩小至宽度</param>

        public static void SmallPic(string strOldPic, string strNewPic, int intWidth)
        {

            System.Drawing.Bitmap objPic, objNewPic;

            try
            {

                objPic = new System.Drawing.Bitmap(strOldPic);

                int intHeight = (intWidth / objPic.Width) * objPic.Height;

                objNewPic = new System.Drawing.Bitmap(objPic, intWidth, intHeight);

                objNewPic.Save(strNewPic);

            }

            catch (Exception exp) { throw exp; }

            finally
            {

                objPic = null;

                objNewPic = null;

            }

        }

        /**/
        /// <summary>

        /// 缩小图片

        /// </summary>

        /// <param name="strOldPic">源图文件名(包括路径)</param>

        /// <param name="strNewPic">缩小后保存为文件名(包括路径)</param>

        /// <param name="intWidth">缩小至宽度</param>

        /// <param name="intHeight">缩小至高度</param>

        public static void SmallPic(string strOldPic, string strNewPic, int intWidth, int intHeight)
        {

            System.Drawing.Bitmap objPic, objNewPic;

            try
            {

                objPic = new System.Drawing.Bitmap(strOldPic);

                objNewPic = new System.Drawing.Bitmap(objPic, intWidth, intHeight);

                objNewPic.Save(strNewPic);

            }

            catch (Exception exp)

            { throw exp; }

            finally
            {

                objPic = null;

                objNewPic = null;

            }

        }

        /*
         以上两个方法注意:

        1:当小于1大于0值转化为int型时值会为零,以至上方法中intWidth 为零,即出现Bitmap方法中参数无效现象,故以上方法仅供参考,还需自己数据类型转化;

        2:当strOldPic与strNewPic值一致时,即用新大小图片替换旧图片时,原图片对象objPic 需释放,即:objPic.Dispose();

         */
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值