Question

J'ai trouvé sur Google, cliquez ici , qui quelqu'un a posé une question similaire, recevoir une réponse qu'ils devraient vérifier si leur fichier existe. Cependant, je suis le chargement des images de liens web , dans lequel il affiche une image d'erreur si A) L'image est introuvable ou B) Si, comme dans les services d'hébergement d'images comme Photobucket, affiche la « bande passante dépassé » image. Y at-il un moyen de détecter si l'image d'erreur est affiché ou si une image est invalide?

Était-ce utile?

La solution

Oui, l'événement LoadCompleted vous dit ce qui a mal tourné:

private void pictureBox1_LoadCompleted(object sender, AsyncCompletedEventArgs e) {
  if (e.Error != null) {
    // You got the Error image, e.Error tells you why
  }
}

Il pourrait aussi être un cas où la charge d'image rempli correctement, mais il y avait quelque chose de mal avec le fichier image elle-même:

private void pictureBox1_Paint(object sender, PaintEventArgs e) {
  if (pictureBox1.Image == pictureBox1.ErrorImage) {
    // You got the Error image
  }
}

Ce gestionnaire d'événements attire les erreurs de chargement trop donc peut-être celui que vous souhaitez utiliser.

Autres conseils

Il n'y a aucun moyen standard de vérification des images valides comme vous souhaitez le faire. L'image « bande passante dépassée » est une image parfaitement valable aux yeux de l'ordinateur.

Cependant, vous pouvez essayer quelques trucs pour filtrer au moins quelques images « mauvaises »:

  • Si vous chargez les images, mettre en place une connexion Internet qui ne pas redirections automatiques. Vous pouvez configurer une sorte de sémantique qui catégorise l'image comme « invalide » si vous êtes redirigé vers un autre endroit, où peut-être l'image « bande passante dépassée » mensonges. Inconvénient de cette méthode est bien sûr que vous êtes peut-être filtrer les images qui se trouvent derrière un redirect et valides.
  • Il suffit de cocher le nom de l'image délivrée par le serveur web. Si vous vous connectez à une adresse comme « http: //test.tld/image.jpg », mais la récupération un « bandwidth_exceeded.jpg » ou quelque chose de similaire, le cas devrait être clair. Cette méthode exige que vous savez comment nommer hoster image leurs images « la bande passante dépassé » ou « non plus disponible ».
  • Une sorte de reconnaissance d'images vérification par rapport à des images connues « mauvais ». Un assez sophistiqué.

Vous voyez, ces listes noires sémantiques sont tout autre que parfait, peut-être même pire filtrer les bonnes images.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top