Существует довольно много сообщений о рендеринге высококачественной графики, как эта
Библиотека масштабирования высококачественных изображений
Мне нужно визуализировать около 6k + объектов (линии и эллипсы) в графике с помощью GDI +, при частоте кадров около 10 кадров в секунду. Поэтому мне нужно свойство самого низкого качества для моей графики.
Вот что я сделал:
public static class GraphicsExtensions
{
public static void ToHighQuality(this Graphics graphics)
{
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
}
public static void ToLowQuality(this Graphics graphics)
{
graphics.InterpolationMode = InterpolationMode.Low;
graphics.CompositingQuality = CompositingQuality.HighSpeed;
graphics.SmoothingMode = SmoothingMode.HighSpeed;
graphics.TextRenderingHint = TextRenderingHint.SystemDefault;
graphics.PixelOffsetMode = PixelOffsetMode.HighSpeed;
}
}
Я что-то забыл, или это лучший возможный экстремум для свойства Graphics?
Я рисую со скоростью 5 кадров в секунду (202 мс / изображение) в более низком режиме и 3 кадра в секунду (330 мс / изображение) в более высоком режиме.
Я не чувствую большой разницы, но я свел проблему с производительностью только к рисованию ...
Некоторые числа: