码迷,mamicode.com
首页 > Windows程序 > 详细

C# 获取Image图片格式

时间:2016-11-24 07:45:14      阅读:374      评论:0      收藏:0      [点我收藏+]

标签:get   void   file   style   图片   new   ima   ram   jpg   

private void button1_Click_1(object sender, EventArgs e)
        {
            string path = Application.StartupPath;
            using (FileStream file = new FileStream(txtpath.Text, FileMode.Open))
            {
                Image img = Image.FromStream(file);
                string format;
                System.Drawing.Imaging.ImageFormat _img_format = GetImageFormat(img, out format);
                if (_img_format != null)
                {
                    img.Save(path + @"\" + Guid.NewGuid().ToString() + format, _img_format);
                    MessageBox.Show("ok");
                }
            }
            
        }

        /// <summary>
        /// 获取Image图片格式
        /// </summary>
        /// <param name="file"></param>
        /// <param name="format"></param>
        /// <returns></returns>
        private System.Drawing.Imaging.ImageFormat GetImageFormat(FileStream file, out string format)
        {
            byte[] sb = new byte[2];  //这次读取的就是直接0-1的位置长度了.
            file.Read(sb, 0, sb.Length);
            //根据文件头判断
            string strFlag = sb[0].ToString() + sb[1].ToString();
            //察看格式类型
            switch (strFlag)
            {
                //JPG格式
                case"255216":
                    format = ".jpg";
                    return System.Drawing.Imaging.ImageFormat.Jpeg;
                //GIF格式
                case"7173":
                    format = ".gif";
                    return System.Drawing.Imaging.ImageFormat.Gif;
                //BMP格式
                case"6677":
                    format = ".bmp";
                    return System.Drawing.Imaging.ImageFormat.Bmp;
                //PNG格式
                case"13780":
                    format = ".png";
                    return System.Drawing.Imaging.ImageFormat.Png;
                //其他格式
                default:
                    format = string.Empty;
                    return null;
            }
        }

        /// <summary>
        /// 获取Image图片格式
        /// </summary>
        /// <param name="_img"></param>
        /// <param name="format"></param>
        /// <returns></returns>
        private System.Drawing.Imaging.ImageFormat GetImageFormat(Image _img,out string format)
        {
            if (_img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
            {
                format = ".jpg";
                return System.Drawing.Imaging.ImageFormat.Jpeg;
            }
            if (_img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif))
            {
                format = ".gif";
                return System.Drawing.Imaging.ImageFormat.Gif;
            }
            if (_img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png))
            {
                format = ".png";
                return System.Drawing.Imaging.ImageFormat.Png;
            }
            if (_img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp))
            {
                format = ".bmp";
                return System.Drawing.Imaging.ImageFormat.Bmp;
            }
            format = string.Empty;
            return null;
        }

 

C# 获取Image图片格式

标签:get   void   file   style   图片   new   ima   ram   jpg   

原文地址:http://www.cnblogs.com/testsec/p/6095888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!