2017-04-26 41 views

回答

-1

基於HTML版本http://techslides.com/demos/progressive-test.html是漸進編碼包含字節FFC2一個JPEG使用。

FFC2 marker顯示僅存在於逐行圖像中的幀的開始。

var imageUrl = "progress.jpg"; 

using (var wc = new WebClient()) 
{ 
    byte[] imageBytes = wc.DownloadData(imageUrl); 

    string hex = BitConverter.ToString(imageBytes.Take(500).ToArray()); 
    var imageAsHex = hex.Replace("-", "").ToUpper(); 

    Console.WriteLine("Is JPEG: " + imageAsHex.Contains("FFD8")); 
    Console.WriteLine("Is Progressive: " + imageAsHex.Contains("FFC2")); 
} 
+0

你爲什麼要將字節轉換爲字符串?這是非常低效的,並且可能會導致類似「AF FD 8B」的字節被錯誤地視爲匹配「FF D8」。此外,似乎可以使用比「在前500個字節中存在2個字節的序列」更準確的方法。 – Nyerguds

+0

好點,你有其他建議嗎? – John

+0

好吧,要麼實際弄清楚jpeg頭文件如何工作並正確檢測它,或者只是遍歷字節並按照2的順序檢查它們以檢測您的屬性。當然,這將會是更多的代碼,但我相信它仍然比字符串比較更有效率。事實上的字符串工具是獲得結果的簡短方式並不意味着在這些簡單的調用之後沒有更多的事情發生。 – Nyerguds

相關問題