我正在开发一个使用 WPF 动态呈现内容的应用程序,包括 WPF 中的文本和图像到 jpg 文件中。我目前正在使用该RenderTargetBitmap
课程来完成这项工作。一切都按预期工作,但渲染字体的质量很糟糕。我知道它RenderTargetBitmap
不使用 ClearType 而是使用 GrayScale 抗锯齿,这对于小字体来说有点模糊。但是我用的是大字体,大于30pts,结果完全不能接受。这个问题有什么解决方法吗?
[更新]
我正在使用的代码如下所示。正如预期的那样,在 CompositionTarget 的每个渲染事件上都会调用它。
void CompositionTarget_Rendering(object sender, EventArgs e)
{
prefix = "";
if (counter < 10)
{
prefix = "000";
}
else if (counter < 100)
{
prefix = "00";
}
else if (counter < 1000)
{
prefix = "0";
}
Size size = new Size(MainCanvas.Width, MainCanvas.Height);
MainCanvas.Measure(size);
MainCanvas.Arrange(new Rect(size));
RenderTargetBitmap bmp = new RenderTargetBitmap(imgWidth, imgHeight, 96d, 96d, PixelFormats.Default);
bmp.Render(MainCanvas);
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.QualityLevel = 90;
encoder.Frames.Add(BitmapFrame.Create(bmp));
string file = basePath + prefix + counter.ToString() + "_testpic.jpg";
using (Stream stm = File.Create(file))
{
encoder.Save(stm);
}
counter++;
}
以下是生成图像的一些示例: 替代文本 http://www.randomnoise.org/temp/testpic_v1.jpg 替代文本 http://www.randomnoise.org/temp/testpic_v2.jpg
提前致谢。