這是我的wpf代碼 <InkCanvas x:Name="inkCanvas" Margin="9,325,210,193" Background="Azure"></InkCanvas>
還有一個按鈕 當按下按鈕時,我想要將圖像保存到文件中。這裏是我的代碼將inkCanvas中的圖像保存爲png或jpeg文件
private void button1_Click(object sender, RoutedEventArgs e)
{
int margin = (int)inkCanvas.Margin.Left;
int width = (int)inkCanvas.ActualWidth - margin;
int height = (int)inkCanvas.ActualHeight - margin;
RenderTargetBitmap rtb = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Default);
rtb.Render(inkCanvas);
using (FileStream fs = new FileStream("path", FileMode.Create))
{
BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
encoder.Save(fs);
}
}
但圖像dusplayed是全黑的(從資源whatching)或complitely白色,如果油漆打開。 我如何繪製完整的圖像? TY。
看一看:http://stackoverflow.com/questions/4067448/converting-image-to-bitmap -turns-background-black我有一個類似的問題,但winForms – Alex
@Alex似乎沒有那麼相似,您試圖在不支持它的編碼器中使用透明度保存位圖,但此編碼器確實支持它,但它可能是默認的像素格式不包括Alpha通道,或者可能是渲染不能正確渲染背景和矢量 – MikeT