现在的位置: 首页 > 综合 > 正文

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

2014年03月28日 ⁄ 综合 ⁄ 共 2740字 ⁄ 字号 评论关闭

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();

         */
    }
}

抱歉!评论已关闭.