2016-06-27 5 views
0
private void ConvertImagestoTransparent(string filename) 
{ 
    var image = new Bitmap(filename, PixelFormat.Format32bppArgb); 
    using (var g = Graphics.FromImage(image)) 
    { 
     g.DrawLine(Pens.Red, 0, 0, 135, 135); 
    } 
} 

これは、新しいビットマップファイル名を取得していないエラー私を与える:ハードディスクの画像を透明にするにはどうしたらいいですか?

エラー2引数2: 'ブール'

に 'System.Drawing.Imaging.PixelFormat' から変換することはできませんが

また、ビットマップを取得しません。コンストラクタで

DirectoryInfo d = new DirectoryInfo(@"C:\temp\images\"); 
Files = d.GetFiles("*.png"); 

それが透明にPNG画像を変換することは可能ですか?それは品質を失うだろうか?

+0

「品質が低下しますか?」 - 損失のあるフォーマットをロードして損失のあるフォーマットを保存すると、品質が低下します。ロスレス・フォーマットをロードしてロッシー・フォーマットを保存すると、それは品質を失います。ロスレスフォーマットとして保存すると、品質は変わりません(ただし、ファイルサイズは大きくなる可能性があります)。この記事を参照してください - https://en.wikipedia.org/wiki/Lossy_compression –

+0

間違ったコンストラクタパラメータを使用しているためにエラーが発生しています。あなたの目標は何ですか?入力画像と出力したい画像を共有したり、pngを透明に変換することで何を意味するのでしょうか? –

答えて

0

使用しているBitmapコンストラクタはローディングの画像のみです。何を、あなたの第二の質問について

image.Save(filename); 

:あなたはこのようなファイルに画像を保存することができ、

var image = new Bitmap(theWidth, theHeight, PixelFormat.Format32bppArgb); 

を次に:あなたは1を作成したい場合は、このようthis oneを使用する必要があります「png画像を透明に変換する」という意味ですか?画像から背景色を削除しますか?

関連する問題