2016-09-12 11 views
1

私はwpfで透明なボーダーレスウィンドウを持っていて、その背景からの.pngイメージのみが表示され、フォームをそのまま透明にエクスポートしようとしています。ここで透明なWPFからPNGへのイメージ - VB.NET

は私が持っているものです。

Dim target = New Bitmap(Me.Width, Me.Height, PixelFormat.Format32bppArgb) 
    Dim graphics__1 = Graphics.FromImage(target) 
    graphics__1.CompositingMode = CompositingMode.SourceOver 
    graphics__1.DrawImage(target, 0, 0) 
    target.Save("filename.png", ImageFormat.Png) 

それは動作しますが、出力画像が空白になっています。

答えて

0

このコードのどこにでもターゲットイメージをバックグラウンドイメージに設定することは決してありません。保存すると、イメージデータはありません。

次のコードを試してください。それは私のために働いた:

Image image = new Image(); 
image.Source = (Background as ImageBrush).ImageSource; 
Size sz = new Size(image.Source.Width, image.Source.Height); 
image.Measure(sz); 
image.Arrange(new Rect(sz)); 

RenderTargetBitmap rtb = new RenderTargetBitmap((int)image.Source.Width, (int)image.Source.Height, 96d, 96d, PixelFormats.Default); 
rtb.Render(image); 

PngBitmapEncoder pngBitmapEncoder = new PngBitmapEncoder(); 
pngBitmapEncoder.Frames.Add(BitmapFrame.Create(rtb)); 
using (Stream stream = File.Create("test.png")) 
    pngBitmapEncoder.Save(stream); 
+0

問題を解決しました。どうもありがとうございます! – Nana

関連する問題