イメージを透明な背景に設定したいが、特定の色のすべてのピクセルを透明に置き換えたくない。Bitmap.MakeTransparent()を使用せずに、C#で背景が透明になるように画像を設定するにはどうすればよいですか?
具体的には、画像は、IShellItemImageFactory.GetImageで取得したフォルダのサムネイル画像です。これは私にWindows Explorerのサムネイル表示で表示されるビットマップを表示しますが、背景は白です。
Bitmap.MakeTransparentを使用することができますが、ほとんどの場合、サムネイル画像に白が含まれている場合(白い色を含む画像などのフォルダが含まれている場合など)は問題ありません。
私の疑問を尋ねた後、私はどこからでも答えを見つけられず、実際に自分自身に尋ねなければならなかったことは、開発者として10年以上の間に初めてのことです。 (私はちょうどレベルアップしたことを意味すると思います!)
これはあなたを助けることができるかもしれません:http://www.c-sharpcorner.com/UploadFile/mahesh/DrawTransparentImageUsingAB10102005010514AM/DrawTransparentImageUsingAB.aspx –
どこに画像を表示したいですか(ツリービュー、ボタンなど...) )? *サムネイル画像に白が入っている場合* –
私は画像ビューアアプリケーションを作成し、flowlayoutpanelの私のユーザコントロールにサムネイルを表示しました。マウスがサムネイルの上を移動すると、グラデーションで塗りつぶされた背景が描画されます(選択またはhottrackedによって色が異なります)。問題は、フォルダのサムネイル画像にその中の白い部分が含まれていると、その部分が透明になり、サムネイルペイントハンドラがグラデーションを使用して画像のその部分をペイントします(画像が "その部分は透明です)。これが今はっきりしているといいなあと思う? –