使用C#,如何检测图像URL是否返回与默认图像不同的东西



我有一些使用该问题的解决方案来验证某个图像URL是否存在。

所以我的代码看起来像这样:

 private bool PictureExists(string id)
    {
        string url = "https://www.example.com/profile.do?userid=" + id;
        var request = (HttpWebRequest)HttpWebRequest.Create(url);
        request.Method = "HEAD";
        bool exists;
        try
        {
            request.GetResponse();
            exists = true;
        }
        catch
        {
            exists = false;
        }
        return exists;
    }
}

如果不存在图片,此功能将返回false,并且效果很好。

现在的问题是该功能开始返回true,我发现根本原因是,如果我搜索的内容不存在,它们已更改后端以返回默认图像。

所以我的新要求是如何检查返回的图像不是默认图像(因此我可以复制以前的验证)?

可能不是最好的解决方案,但是我的第一个想法是将默认图像转换为字节数组变量,然后下载要检查的图像,然后将其转换为字节数组。然后,您可以比较它们:

要比较的代码(仅来自.net 3.5!):

static public bool ByteArrayCompare(byte[] a1, byte[] a2) 
{
    return a1.SequenceEqual(a2);
}

代码将图像转换为字节[]:

static public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
    MemoryStream ms = new MemoryStream();
    imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
    return ms.ToArray();
}

希望它有帮助,对不起英语不好。

相关内容

  • 没有找到相关文章

最新更新