2016-08-03 81 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