How to convert a XPS file to an image in high quality (rather than blurry low resolution)?

前端 未结 4 1826
情深已故
情深已故 2020-12-14 21:11

I\'m trying to convert an XPS with WPF.

The idea is that these images can be loaded with silverlight 4, for this I am using the following code:

 // X         


        
4条回答
  •  青春惊慌失措
    2020-12-14 21:51

        private IList GetTifPagesFromXps(string xXpsFileName, double xQuality)
        {
            using (var xpsDoc = new XpsDocument(xXpsFileName, FileAccess.Read))
            {
                var docSeq = xpsDoc.GetFixedDocumentSequence();
    
                var tifPages = new List();
                for (var i = 0; i < docSeq.DocumentPaginator.PageCount; i++)
                {
                    using (var docPage = docSeq.DocumentPaginator.GetPage(i))
                    {
                        var renderTarget = new RenderTargetBitmap((int)(docPage.Size.Width * xQuality), (int)(docPage.Size.Height * xQuality), 96 * xQuality, 96 * xQuality, PixelFormats.Default);
    
                        renderTarget.Render(docPage.Visual);
    
                        var jpegEncoder = new JpegBitmapEncoder { QualityLevel = 100 };
                        jpegEncoder.Frames.Add(BitmapFrame.Create(renderTarget));
    
                        byte[] buffer;
                        using (var memoryStream = new MemoryStream())
                        {
                            jpegEncoder.Save(memoryStream);
                            memoryStream.Seek(0, SeekOrigin.Begin);
                            buffer = memoryStream.GetBuffer();
                        }
                        tifPages.Add(buffer);
                    }
                }
    
                xpsDoc.Close();
                return tifPages.ToArray();
            }
        }
    

提交回复
热议问题