私はユーザーの画面のポーションのスクリーンショットを取るC#でプログラムに取り組んでいます登場。ほとんどのpertのためにそれはすべきだが、私は最近、一つの問題にぶつかった。出力画像に常に透明に見える(少なくとも)1つのピクセルカラーがあるようです。カラー#0D0B0C(RGB 13,11,12)のインスタンスは、保存されたpngで透明に見えます。これは、PixelFormatがFormat32bppArgbに設定されています。 Format32bppRgbまたはFormat24bppRgbに設定すると、同じピクセルカラーが保存されたpngに黒色で表示されます。C#のBitmapオブジェクト、色などの透明
は、私がこれを引き起こしている可能性がどのような見当がつかないが、私は「解決」するために行うことができました唯一のことは、それがCopyFromScreenを行う前に、グラフィックスは、その色に反対クリアすることです()。私はいくつかの理由でそれをするのは嫌です。最初に、それが問題を抱えている唯一の色であるかどうかはわかりません(16,777,216色にはかなりの可能性があります)。そして、第2に、ハックフィックスが嫌いです。これはハックフィックスのようです。
誰もがこの問題を引き起こしている可能性がありますどのように任意の光を当てることができますか?ビットマップ作成でPixelFormatを使いこなし、CopyFromScreenメソッドのCopyPixelOperationで何も動作しないようです。グラフィックスオブジェクトをその色にクリアすると、それが「修正」されるという事実は、透明度がスクリーンデータ自体から来ていると私には思われますが、それは理にかなっていません。私はこれをあまりにも長く見てきました。私はそれについて新鮮な視点が必要だと思います。どうしてこのことが起こっているのか分かっている人は、それを聞いてみたいです。ありがとうございました。
あなたはそれを診断するためにしなければならないすべては、画面上のフォームを移動し、それが消えるかどうかを確認しています。私は非常に真剣にそれが問題だとは思っていません... –
それは複数のピクセルで、複数の異なるスクリーン/コンピュータ上で起こり、常にその色です。私は問題は修正されたと思ったが、プログラムのユーザーの1人はそれがまだ起こっていると私に言った。 – HaLo2FrEeEk