Работа с изображениями в файле XPS | .NET
Добавить изображение в документы XPS
Aspose.Page для .NET предлагает класс XpsPath, с помощью которого вы можете добавлять изображения в документ XPS. Вам необходимо создать XpsMatrix и XpsImageBrush и сохранить XpsDocument. Следующий фрагмент кода демонстрирует полную функциональность добавления изображения в документ XPS:
1// Add image to XPS document.
2
3// Create new XPS Document
4XpsDocument doc = new XpsDocument();
5
6string outputFileName = "AddImage_outXPS.xps";
7
8// Add Image
9XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 30,20 l 258.24,0 0,56.64 -258.24,0 Z"));
10//Creating a matrix is optional, it can be used for proper positioning
11path.RenderTransform = doc.CreateMatrix(0.7f, 0f, 0f, 0.7f, 0f, 20f);
12//Create Image Brush
13path.Fill = doc.CreateImageBrush(DataDir + "QL_logo_color.tif", new RectangleF(0f, 0f, 258.24f, 56.64f), new RectangleF(50f, 20f, 193.68f, 42.48f));
14// Save resultant XPS document
15doc.Save(OutputDir + outputFileName);
Результат of running this code is next
Добавить мозаичное изображение
Решение предлагает класс XpsPath, с помощью которого вы можете добавлять изображения в документы XPS. Для этого сначала необходимо создать XpsMatrix и XpsImageBrush, затем указать режим XpsTileMode.Tile и сохранить XpsDocument.
Следующий фрагмент кода демонстрирует полную функциональность добавления мозаичного изображения в документ XPS:
1// Paint rectangle with tiled image (texture pattern) in XPS document.
2
3// Create new XPS Document
4XpsDocument doc = new XpsDocument();
5
6string outputFileName = "AddTextureTilingPattern_outXPS.xps";
7
8// Tile image
9// ImageBrush filled rectangle in the right top bellow
10XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 10,160 L 228,160 228,305 10,305"));
11path.Fill = doc.CreateImageBrush(DataDir + "R08LN_NN.jpg", new RectangleF(0f, 0f, 128f, 96f), new RectangleF(0f, 0f, 64f, 48f));
12((XpsImageBrush)path.Fill).TileMode = XpsTileMode.Tile;
13path.Fill.Opacity = 0.5f;
14// Save resultant XPS document
15doc.Save(OutputDir + outputFileName);
Результат of running this code is next
Вы можете загрузить примеры и файлы данных с сайта GitHub.