• C# 获取Image图片格式


    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;
            }
  • 相关阅读:
    poj 2533 (LIS 最长递增子序列)
    zoj 2432(最长递增上升子序列)
    hdu 1159(最长公共子序列)
    2013 腾讯马拉松初赛 第1场
    poj 1458(最长公共子序列)
    hdu 4524(水题)
    hdu 4514(自己添加栈—— #pragma comment(linker, "/STACK:102400000,102400000" ))
    MVC3安装报错解决方案
    C# 用7Z 压缩 ZIP
    获得字符串中开始和结束字符串中间得值
  • 原文地址:https://www.cnblogs.com/testsec/p/6095888.html
Copyright © 2020-2023  润新知