Преобразование FixedDocument с изображениями в XPS теряет качество изображений - PullRequest
0 голосов
/ 27 марта 2019

Я хочу создать файл XPS из FixedDocument, который содержит несколько изображений.Когда я открываю файл XPS, изображения выглядят нормально для увеличения 100%, но теряют качество при увеличении масштаба.Можно ли поместить изображения в файл XPS, чтобы качество изображения не терялось при масштабировании более 100%?

Я использовал этот код для добавления изображений в FixedDocument:

FixedDocument fixedDocument = new FixedDocument();
FixedPage page = new FixedPage();

var filename = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), Context.NomAplicacio, "Settings", "logo3.jpg");

var bitImage = new BitmapImage();
bitImage.BeginInit();
bitImage.StreamSource = new FileStream(filename, FileMode.Open, FileAccess.Read);
bitImage.DecodePixelWidth = 150;
bitImage.CacheOption = BitmapCacheOption.OnLoad;
bitImage.CreateOptions = BitmapCreateOptions.IgnoreColorProfile;
bitImage.EndInit();
bitImage.StreamSource.Seek(0, SeekOrigin.Begin);
bitImage.Freeze();

var tempImage = new System.Windows.Controls.Image { Source = bitImage };
bitImage.StreamSource.Dispose();
page.Children.Add(tempImage);

PageContent pageContent = new PageContent();
((IAddChild)pageContent).AddChild(page);
fixedDocument.Pages.Add(pageContent);

И это мой код для создания файла XPS из FixedDocument:

using (var container = Package.Open(fileNameXps, FileMode.Create))
{
    using (var xpsDoc = new XpsDocument(container, CompressionOption.NotCompressed))
    {
        var pol = new XpsPackagingPolicy(xpsDoc);
        var rsm = new XpsSerializationManager(pol, false);
        var paginator = fixedDocument.DocumentPaginator;
        rsm.SaveAsXaml(paginator);
    }
}

Глядя на файл XPS, я вижу, что изображения (внутри ресурсов папки) были перемасштабированы и имеют очень низкийРазмер по сравнению с исходным изображением.Возможно, это проблема, но я не знаю, как создать XPS с исходными изображениями внутри.

...