.net程序获得图片的高度宽度和类型

2014-10-24 15:09:48  访问(3335) 赞(0) 踩(0)

程序代码:


        /// <summary>
        /// 获得图片的属性
        /// </summary>
        /// <param name="imageFileName"></param>
        /// <returns></returns>
        public static ImageAttribute GetImageAttribute
            (
                string imageFileName
            )
        {
            if (imageFileName == null || imageFileName.Length == 0)
            {
                new Exception("string imageFileName 为空。");
            }

            FileInfo info = new FileInfo(imageFileName);

            if(!info.Exists)
                new Exception(imageFileName + " 文件不存在。");
                

            string strExt = info.Extension;


            if(strExt == null||strExt.Length == 0)
                new Exception(imageFileName + " 后缀不是图片格式");
                

            strExt = strExt.Trim().ToLower();
            
            SlowX.Functions.Enums.ImageExt.EmImageExt[] 
                emA 
                = 
                Enums.ImageExt.EmArray;

            bool isFind = false;
            SlowX.Functions.Enums.ImageExt.EmImageExt 
                EmImageExtValue 
                = 
                Enums.ImageExt.EmImageExt.JPEG;

            foreach (SlowX.Functions.Enums.ImageExt.EmImageExt em in emA)
            {
                if (strExt == "." + em.ToString().ToLower())
                {
                    EmImageExtValue = em;
                    isFind = true;
                    break;
                }
            }

            if(!isFind)
                new Exception( imageFileName + " 后缀不是图片格式");

            System.Drawing.Image img 
                = 
                System.Drawing.Image.FromFile(imageFileName);



            int iW = img.Width;
            int iH = img.Height;

            // 销毁图片资源,避免io锁 //
            img.Dispose();

            return new ImageAttribute(iW, iH, EmImageExtValue);


        }


枚举定义:


        #region Enum

        /// <summary>
        /// 图片后缀类型
        /// </summary>
        public enum EmImageExt
        {

            /// <summary>
            /// JPG
            /// </summary>
            JPG = 1,
            /// <summary>
            /// JPEG
            /// </summary>
            JPEG,
            /// <summary>
            /// PNG
            /// </summary>
            PNG,
            /// <summary>
            /// GIF
            /// </summary>
            GIF,
            /// <summary>
            /// BMP
            /// </summary>
            BMP,
            /// <summary>
            /// PSD
            /// </summary>
            PSD,
            /// <summary>
            /// TIF
            /// </summary>
            TIF
        }

        #endregion Enum

       

        /// <summary>
        /// 数组
        /// </summary>
        public readonly static EmImageExt[] EmArray = new EmImageExt[]
        {
EmImageExt.JPG,
EmImageExt.JPEG,
EmImageExt.PNG,
EmImageExt.GIF,
EmImageExt.BMP,
EmImageExt.PSD,
EmImageExt.TIF

        };


WidthHeightClass:


    /// <summary>
    /// 宽和高的结构
    /// </summary>
    [Serializable]
    public class WidthHeightClass
    {
        /// <summary>
        /// 宽和高的结构
        /// </summary>
        public WidthHeightClass()
        {

        }

        /// <summary>
        /// 宽和高的结构
        /// </summary>
        /// <param name="_Width"></param>
        /// <param name="_Height"></param>
        public WidthHeightClass(int _Width, int _Height)
        {
            m_Width = _Width;

            m_Height = _Height;
        }

        /// <summary>
        /// 宽
        /// </summary>
        protected int m_Width = 0;

        /// <summary>
        /// 宽
        /// </summary>
        public int Width
        {
            get
            {
                return m_Width;
            }
            set
            {
                m_Width = value;
            }
        }

        /// <summary>
        /// 高
        /// </summary>
        protected int m_Height = 0;

        /// <summary>
        /// 高
        /// </summary>
        public int Height
        {
            get
            {
                return m_Height;
            }
            set
            {
                m_Height = value;
            }
        }
    }


ImageAttribute:


    /// <summary>
    /// 图片属性
    /// </summary>
    [Serializable]
    public class ImageAttribute
        :
        WidthHeightClass
    {
        /// <summary>
        /// 图片属性
        /// </summary>
        public ImageAttribute()
        {

        }

      
        /// <summary>
        /// 图片属性
        /// </summary>
        /// <param name="_Width"></param>
        /// <param name="_Height"></param>
        /// <param name="_EmImageExtValue"></param>
        public ImageAttribute
            (
                int _Width, 
                int _Height,
                SlowX.Functions.Enums.ImageExt.EmImageExt _EmImageExtValue
            )
            :
            base(_Width,_Height)
        {
            m_EmImageExtValue = _EmImageExtValue;
        }

        /// <summary>
        /// 图片类型
        /// </summary>
        protected SlowX.Functions.Enums.ImageExt.EmImageExt m_EmImageExtValue = Enums.ImageExt.EmImageExt.JPEG;

        /// <summary>
        /// 图片类型
        /// </summary>
        public SlowX.Functions.Enums.ImageExt.EmImageExt EmImageExtValue
        {
            get
            {
                return m_EmImageExtValue;
            }
            set
            {
                m_EmImageExtValue = value;
            }
        }

    }



标签:获得图片属性    图片高度    图片宽度    图片类型 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)