【发布时间】:2012-08-04 13:47:41
【问题描述】:
我正在以另一种方式将我的 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 等属性(注意:我没有在我的代码中使用这些属性)。
那么,我可以做些什么来使我导出的视觉效果看起来像在屏幕上呈现的视觉效果? 谢谢!
【问题讨论】: