I found this on Google, click here , 誰かが同様の質問をし、ファイルが存在するかどうかを確認する必要があるという回答を受け取りました. ただし、 Web リンクから画像を読み込んでおり、A)画像が見つからない場合、または B)Photobucket などの画像ホスティング サービスのように「帯域幅を超えました」画像が表示される場合、エラー画像が表示されます。エラー画像が表示されているか、画像が無効かを検出する方法はありますか?
10406 次
2 に答える
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
}
}
このイベント ハンドラーは読み込みエラーもキャッチするので、使用したいものかもしれません。
于 2010-03-30T00:36:49.700 に答える
1
あなたが望むように、有効な画像をチェックする標準的な方法はありません。「帯域幅超過」イメージは、コンピューターの目には完全に有効な画像です。
それでも、少なくともいくつかの「間違った」画像を除外するためのいくつかのトリックを試すことができます。
- 画像をロードする場合は、自動リダイレクトを行わない Web 接続をセットアップしてください。おそらく「帯域幅を超えた」画像がある他の場所にリダイレクトされた場合、画像を「無効」として分類する何らかのセマンティックを設定できます。もちろん、この方法の欠点は、リダイレクトの背後にある有効な画像を除外する可能性があることです。
- Web サーバーから配信された画像の名前を確認するだけです。「 http://test.tld/image.jpg 」のようなアドレスに接続し、「bandwidth_exceeded.jpg」または類似のものを取得する場合、ケースは明らかです。この方法では、画像ホスティング業者が「帯域幅を超えた」または「利用できなくなった」画像にどのように名前を付けるかを知っている必要があります。
- 既知の「悪い」画像に対するある種の画像認識チェック。かなり洗練されたもの。
ご覧のとおり、これらのセマンティック ブラック リストは完璧ではありません。
于 2010-03-30T00:32:52.520 に答える