2016-08-03 82 views
2

我正在構建一個API,其中包括允許用戶更改其照片。該照片以base64字符串形式發送,我希望能夠驗證它是實際的.jpeg或.png格式。 因爲在.NET核心中缺少System.Drawing,我不知道如何去做這件事。之前,我可以簡單地使用像驗證base64編碼圖像.NET核心

public Image Base64ToImage(string base64String) 
{ 
    // Convert base 64 string to byte[] 
    byte[] imageBytes = Convert.FromBase64String(base64String); 
    // Convert byte[] to Image 
    using (var ms = new MemoryStream(imageBytes, 0, imageBytes.Length)) 
    { 
     Image image = Image.FromStream(ms, true); 
     return image; 
    } 
} 

然後從那裏去檢查我需要的圖像。

任何幫助,將不勝感激

回答

1

當你沒有System.Drawing中我想看看實際的字節,而不是看他們是否符合JPEG或PNG文件標準。

對於PNG文件的前八個字節總是包含下列十進制值:137 80 78 71 13 10 26 10Source

JPEG文件更爲複雜,但它可以做到爲好。前兩個字節,至少,似乎總是0xFF 0xD8Source)。多讀一點關於文件結構以獲得更好的比較值。

基於此,您可以對imageBytes陣列中的字節進行簡單比較。

+0

謝謝,我現在就走這條路。希望將來有更清晰的方法來做到這一點。 – DVM