【问题标题】:Validating a base64 encoded image .NET core验证 base64 编码图像 .NET 核心
【发布时间】:2017-03-07 09:44:24
【问题描述】:

我正在构建一个 API,它允许用户更改他们的照片。这张照片作为 base64 字符串发送,我希望能够验证它是实际的 .jpeg 或 .png 格式。 由于 .NET 核心中缺少 System.Drawing,我不知道该怎么做。在我可以简单地使用像

这样的东西之前
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;
    }
 }

然后从那里去检查我需要的图片。

任何帮助将不胜感激

【问题讨论】:

    标签: c# asp.net-core asp.net-core-mvc system.drawing


    【解决方案1】:

    如果您没有 System.Drawing,我会查看实际字节,以查看它们是否符合 JPEG 或 PNG 文件标准。

    对于 PNG 文件,前八个字节始终包含以下十进制值:137 80 78 71 13 10 26 10 (Source)

    JPEG 文件更复杂,但也可以完成。至少前两个字节似乎总是0xFF 0xD8 (Source)。阅读有关文件结构的更多信息以获得更好的比较值。

    基于此,您可以对 imageBytes 数组中的字节进行简单比较。

    【讨论】:

    • 谢谢,我现在走这条路。希望将来会有更清洁的方法来做到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 2021-09-13
    • 1970-01-01
    • 2019-11-03
    • 2019-02-23
    • 2016-12-26
    • 1970-01-01
    相关资源
    最近更新 更多