Экспорт изображений в векторном формате WPF (XPS?)

Наш инструмент позволяет экспортировать в PNG, что очень хорошо работает. Теперь я хотел бы добавить экспорт в какой-нибудь векторный формат. Я попробовал XPS, но результаты меня совсем не устраивают.

Взгляните на сравнение http://www.jakubmaly.cz/xps-vs-png.png . Изображение слева получено из экспорта XPS, изображение справа из экспорта PNG, изображение XPS заметно размывается при открытии в XPS Viewer и увеличено на 100%.

Есть ли какие-то настройки, которые мне не хватает, или почему?

Спасибо, Якуб.

Образец вывода xps можно найти здесь: http://www.jakubmaly.cz/files/a.xps . Это код, который выполняет экспорт в XPS:

if (!boundingRectangle.HasValue)
{
    boundingRectangle = new Rect(0, 0, frameworkElement.ActualWidth, frameworkElement.ActualHeight);
}

// Save current canvas transorm
Transform transform = frameworkElement.LayoutTransform;
// Temporarily reset the layout transform before saving
frameworkElement.LayoutTransform = null;


// Get the size of the canvas
Size size = new Size(boundingRectangle.Value.Width, boundingRectangle.Value.Height);
// Measure and arrange elements
frameworkElement.Measure(size);
frameworkElement.Arrange(new Rect(size));

// Open new package
System.IO.Packaging.Package package = System.IO.Packaging.Package.Open(filename, FileMode.Create);
// Create new xps document based on the package opened
XpsDocument doc = new XpsDocument(package);
// Create an instance of XpsDocumentWriter for the document
XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc);
// Write the canvas (as Visual) to the document
writer.Write(frameworkElement);
// Close document
doc.Close();
// Close package
package.Close();

// Restore previously saved layout
frameworkElement.LayoutTransform = transform;

5
задан j_maly 7 February 2012 в 13:53
поделиться