最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c# 識別圖片格式的方法

 更新時(shí)間:2021年02月18日 08:40:37   作者:UP技術(shù)控  
這篇文章主要介紹了c# 識別圖片格式的方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下

問題窺探

在有些時(shí)候,我們拿到了一張圖片。這張圖片的格式是 JPG 還是 PNG?是 BMP 還是只有一幀的 GIF?雖然在大部分情況下,你確實(shí)可以把一張 PNG 格式的圖片保存成 JPG,在電腦上也能雙擊打開看。但如果你要寫一些程序來處理圖片,那么圖片的格式就至關(guān)重要了。例如 GIF 里面有幀信息,而JPG 里面卻沒有,PNG 圖片有通道信息,而 JPG 也沒有。如果你下載了一張JPG 的圖片,卻嘗試用處理 GIF 的方式去提取幀信息,顯然就會導(dǎo)致程序報(bào)錯(cuò)。

解決方案

1.通過文件的擴(kuò)展名來判斷

這種方法比較簡單, 

但若是有人故意改下文件擴(kuò)展名,這種方法就不起作用了。

2.通過C#自身提供的方法來進(jìn)行判斷(判斷某種確定的圖片類型)

bool isJPG = false;
System.Drawing.Image img = System.Drawing.Image.FromFile(filesName);
if(img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
{
 isJPG = true;
}

3.通過讀取文件內(nèi)容來判斷

所有的圖片文件都包括:文件識別頭和圖象數(shù)據(jù)兩部分,
其中文件識別頭用來讓計(jì)算機(jī)判斷是哪種文件 格式。

  • JPEG

所有的JPEG文件以字符串“0xFFD8”開頭,并以字符串“0xFFD9”結(jié)束。依此便可判別是否是JPEG文件。

  • BMP

BMP文件以字符串“0x4D42”開頭

  • GIF

gif頭六個(gè)是 GIF89a或 GIF87a

4.讀取文件內(nèi)容轉(zhuǎn)換成二進(jìn)制流識別,比如.jpg的是255216

示例代碼

public static FileExtension CheckTextFile(string fileName)
        {
            FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
            System.IO.BinaryReader br = new System.IO.BinaryReader(fs);
            string fileType = string.Empty; ;
            try
            {
                byte data = br.ReadByte();
                fileType += data.ToString();
                data = br.ReadByte();
                fileType += data.ToString();
                FileExtension extension;
                try
                {
                    extension = (FileExtension)Enum.Parse(typeof(FileExtension), fileType);
                }
                catch
                {

                    extension=FileExtension.VALIDFILE
                }
                return extension;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (fs != null)
                {
                    fs.Close();
                    br.Close();
                }
            }
        }
    }
    public enum FileExtension
    {
        JPG = 255216,
        GIF = 7173,
        PNG = 13780,
        SWF = 6787,
        RAR = 8297,
        ZIP = 8075,
        _7Z = 55122,
        VALIDFILE=9999999
        // 255216 jpg; 

        // 7173 gif; 

        // 6677 bmp, 

        // 13780 png; 

        // 6787 swf 

        // 7790 exe dll, 

        // 8297 rar 

        // 8075 zip 

        // 55122 7z 

        // 6063 xml 

        // 6033 html 

        // 239187 aspx 

        // 117115 cs 

        // 119105 js 

        // 102100 txt 

        // 255254 sql  

    } 

以上就是c# 識別圖片格式的方法的詳細(xì)內(nèi)容,更多關(guān)于c# 識別圖片格式的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

溆浦县| 内丘县| 扶绥县| 永丰县| 柘城县| 镇巴县| 祁阳县| 齐河县| 石河子市| 哈尔滨市| 股票| 定襄县| 烟台市| 方山县| 呼玛县| 沁阳市| 正阳县| 汉沽区| 体育| 普宁市| 宜兰县| 拜城县| 稻城县| 常山县| 汉沽区| 江陵县| 临洮县| 扶风县| 常德市| 宿迁市| 苗栗市| 铁岭县| 兴海县| 老河口市| 青海省| 永州市| 白朗县| 星子县| 酉阳| 定州市| 乌拉特后旗|