我正在以另一种方式将我的 WPF(4.0)视觉效果(矢量图)导出为某些图像格式......
public void ExportImageTo(BitmapEncoder Encoder, Stream ExportStream, Visual SourceVisual, int Width, int Height)
{
var Result = new RenderTargetBitmap(Width, Height, WPF_DPI, WPF_DPI, PixelFormats.Default);
Result.Render(Source);
Encoder.Frames.Add(BitmapFrame.Create(Result));
Encoder.Save(ExportStream);
ExportStream.Flush();
ExportStream.Close();
}
问题是即使使用 PngBitmapEncoder(无损算法),它仍然会生成一些与屏幕上不同的小像素。
我认为它与 WPF 呈现文本或处理抗锯齿的方式有关,并且存在诸如 UseLayoutRounding、SnapsToDevicePixels 和 BitmapScalingMode 之类的属性(注意:我没有在我的代码中使用这些属性)。
那么,我该怎么做才能使我导出的视觉效果看起来像在屏幕上呈现的那样?谢谢!