【发布时间】:2017-04-16 06:20:10
【问题描述】:
这是我的 wpf 代码
<InkCanvas x:Name="inkCanvas" Margin="9,325,210,193" Background="Azure"></InkCanvas>
还有一个按钮
按下按钮时,我想将绘制的图像保存到文件中。这是我的代码
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);
}
}
但显示的图像全是黑色(从探险家那里得到的)或完全白色,如果在油漆中打开的话。 我该怎么做才能得到与绘制完全一致的图像?太棒了。
【问题讨论】:
-
看看:stackoverflow.com/questions/4067448/… 我也遇到了类似的问题,但使用的是 winForms
-
@Alex 似乎与您尝试在不支持它的编码器中保存具有透明度的位图相似,该编码器确实支持它,但它可能是默认像素格式'不包括 Alpha 通道,或者可能是渲染器没有正确渲染背景和矢量