Я разрабатываю приложение с использованием WPF для динамического рендеринга контента, включая текст и изображения из WPF в jpg-файлы. В настоящее время я использую класс RenderTargetBitmap
, чтобы выполнить эту работу. Все работает так, как ожидалось, но качество создаваемых шрифтов ужасно. Я понимаю, что в RenderTargetBitmap
не используется ClearType, а антиалиасы GrayScale, что является своего рода размытием с маленькими шрифтами. Но я использую большие шрифты, более 30 очков, и результаты абсолютно неприемлемы. Есть ли какое-то обходное решение для этой проблемы?Проблемы с отображением текста в виде растровых изображений с использованием WPF
[Update]
Кодекс Я использую перечислен ниже. Как и ожидалось, он вызывается для каждого события рендеринга 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++;
}
Вот некоторые примеры полученных изображений: alt text http://www.randomnoise.org/temp/testpic_v1.jpg alt text http://www.randomnoise.org/temp/testpic_v2.jpg
Спасибо заранее.
Можете ли вы разместить фотографию? –
Какое разрешение ваших растровых изображений? – ChrisF
Пожалуйста, разместите код, в котором вы используете RenderTargetBitmap. Какие PixelFormats вы используете? –