我在谷歌click here上发现了这个问题,有人问了一个类似的问题,收到的回复是他们应该检查他们的文件是否存在。但是,我正在加载来自网络链接的图像,如果A)找不到图片或B)如果像Photobucket这样的图像托管服务显示'带宽',则显示错误图像超出了'形象。有没有办法检测是否显示错误图像或图像是否无效?
答案 0 :(得分:10)
是的,LoadCompleted事件告诉您出了什么问题:
private void pictureBox1_LoadCompleted(object sender, AsyncCompletedEventArgs e) {
if (e.Error != null) {
// You got the Error image, e.Error tells you why
}
}
还可能存在图像加载正确完成但图像文件本身出现问题的情况:
private void pictureBox1_Paint(object sender, PaintEventArgs e) {
if (pictureBox1.Image == pictureBox1.ErrorImage) {
// You got the Error image
}
}
此事件处理程序也会捕获加载错误,因此可能是您要使用的错误。
答案 1 :(得分:1)
没有像您希望的那样检查有效图片的标准方法。 “带宽超出”图像是计算机眼中完全有效的图像。
然而,您可以尝试一些技巧来过滤掉至少一些“错误”的图像:
你知道,那些语义黑名单除了完美之外还有其他所有东西,甚至可能更糟糕的过滤出好的图像。