破損した画像を見つけるために参照する必要がある約 300,000 の画像があります。破損によって、私は何が問題なのかを説明しなければなりません:
一部の画像には、この問題を示す画像の特定の部分があります。私はそれを何と呼ぶべきかわからないので、解決策を見つけることができます。
既知の問題ではないと思うし、これまで見たことがなかったので、要件の説明であるというMitchのコメントに同意します。おそらく、これらの画像を自分で検出する方法を見つける必要があります。
(写真の赤い目とは異なり、ツールを手に取ってすぐに修正できます)。
ファイルへのパスを受け入れるコンストラクターを使用してBitmap
オブジェクトを作成することから始めることができます。Bitmap(String)
これらの画像を検出するために使用してピクセルを読み取ることができますBitmap.GetPixel(Int32, Int32)
(ただし、それを行うには何らかのアルゴリズムを考え出す必要があります。おそらく下の行を読んで、画像に含まれる2色のみで構成されているかどうかを確認してください。 (その茶色と黄色)編集:画像をズームで表示しましたが、画像にアンチエイリアシングがあるため、おそらくそれほど単純には機能しません。ただし、ほとんどのピクセルがこれらの色であるかどうかを確認できます。 、それはうまくいくはずです)。
サイドノート:
これで、実際にそれらを編集したい場合(たとえば、画像の残りの部分が別のファイルにある場合)Graphics
、静的メソッドを使用してオブジェクトを作成できますGraphics.FromImage(Image)
。
警告:Graphics
オブジェクトは使い捨てです。ファイルを保存した後、またはグラフィックの変更を完了した後は、それらを破棄することを忘れないでください。
この質問には、破損した画像を検出するコードがあります
問題は、これらの画像がどのように破損したのかということです。格納されているマシンに障害のあるディスクまたはその他のハードウェアがある場合は、それにも対処する必要があります。