Работа с изображениями

Извлечь все изображения со страницы Visio

В Microsoft Visio страницы являются либо передним планом, либо фоновыми страницами. Вы можете извлечь изображения с определенной страницы файла Visio.

Извлечь изображения

Объект Page Class представляет область рисования страницы переднего плана или страницы фона. Свойство Shapes, предоставляемое классом Diagram, поддерживает коллекцию объектов Aspose.Diagram.Shape. Это свойство можно использовать для извлечения всех изображений с определенной страницы.

Пример программирования извлечения изображений

Следующий фрагмент кода извлекает все изображения с определенной страницы Visio.

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_Shapes();
// Call a Diagram class constructor to load a VSD diagram
Diagram diagram = new Diagram(dataDir + "ExtractAllImagesFromPage.vsd");
// Enter page index i.e. 0 for first one
foreach (Shape shape in diagram.Pages[0].Shapes)
{
// Filter shapes by type Foreign
if (shape.Type == Aspose.Diagram.TypeValue.Foreign)
{
using (System.IO.MemoryStream stream = new System.IO.MemoryStream(shape.ForeignData.Value))
{
// Load memory stream into bitmap object
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(stream);
// Save bmp here
bitmap.Save(dataDir + "ExtractAllImages" + shape.ID + "_out.bmp");
}
}
}

Получить иконки различных форм Visio

Aspose.Diagram for .NET API теперь позволяет разработчикам получать иконки различных Visio форм.

Получение значка формы

Код в приведенных ниже примерах показывает, как:

  1. Загрузите существующий diagram или шаблон.
  2. Получить мастер по его индексу
  3. Получить главный значок.
  4. Сохранить значок в локальном пространстве.

Получить пример программирования значков

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_Shapes();
// Load stencil file to a diagram object
Diagram stencil = new Diagram(dataDir + "Timeline.vss");
// Get master
Master master = stencil.Masters.GetMaster(1);
using (System.IO.MemoryStream stream = new System.IO.MemoryStream(master.Icon))
{
// Load memory stream into bitmap object
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(stream);
// Save as png format
bitmap.Save(dataDir + "MasterIcon_out.png", System.Drawing.Imaging.ImageFormat.Png);
}

Замените форму изображения Visio Diagram

Aspose.Diagram for .NET API позволяет разработчикам получать доступ и заменять доступные формы изображений в файле Visio diagram.

Замена формы изображения

Код в приведенных ниже примерах показывает, как:

  1. Загрузите существующий diagram.
  2. Повторите выборочные формы страниц.
  3. Примените фильтр, чтобы получить формы изображения.
  4. Сохраните результат Visio diagram в локальном пространстве.

Замена примера программирования формы изображения

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_Shapes();
// Call a Diagram class constructor to load the VSD diagram
Diagram diagram = new Diagram(dataDir + "ExtractAllImagesFromPage.vsd");
// Convert image into bytes array
byte[] imageBytes = File.ReadAllBytes(dataDir + "Picture.png");
// Enter page index i.e. 0 for first one
foreach (Shape shape in diagram.Pages[0].Shapes)
{
// Filter shapes by type Foreign
if (shape.Type == Aspose.Diagram.TypeValue.Foreign)
{
using (System.IO.MemoryStream stream = new System.IO.MemoryStream(shape.ForeignData.Value))
{
// Replace picture shape
shape.ForeignData.Value = imageBytes;
}
}
}
// Save diagram
diagram.Save(dataDir + "ReplaceShapePicture_out.vsdx", SaveFileFormat.VSDX);

Импортировать растровое изображение как форму Visio

Aspose.Diagram for .NET API теперь позволяет разработчикам импортировать растровое изображение в виде формы.

Вставьте изображение BMP в Visio

Код в приведенных ниже примерах показывает, как:

  1. Создайте номер diagram.
  2. Получить страницу Visio
  3. Импорт растрового изображения в виде фигуры Visio
  4. Сохраните номер diagram.

Вставьте образец программирования изображения BMP

// For complete examples and data files, please go to https://github.com/aspose-diagram/Aspose.Diagram-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_Shapes();
// Create a new diagram
Diagram diagram = new Diagram();
// Get page object by index
Page page0 = diagram.Pages[0];
// Set pinX, pinY, width and height
double pinX = 2, pinY = 2, width = 4, hieght = 3;
// Import Bitmap image as Visio shape
page0.AddShape(pinX, pinY, width, hieght, new FileStream(dataDir + "image.bmp", FileMode.OpenOrCreate));
// Save Visio diagram
diagram.Save(dataDir + "InsertImageInVisio_out.vsdx", SaveFileFormat.VSDX);

Преобразование указанной области страницы Visio в изображение

С помощью Aspose.Diagram for .NET API разработчики могут определить область с координатами XY, шириной и высотой, а затем преобразовать эту область в поддерживаемый формат изображения.

Преобразование области рисования Visio в изображение

Код в приведенных ниже примерах показывает, как:

  1. Загрузите существующий чертеж Visio
  2. Определить площадь прямоугольника
  3. Преобразование указанной области в изображение

C#

 // load a Visio drawing

Diagram diagram = new Diagram(@"c:\temp\Drawing1.vsdx");

Aspose.Diagram.Saving.ImageSaveOptions Options = new Aspose.Diagram.Saving.ImageSaveOptions(SaveFileFormat.PNG);

// specify region with XY coordinates, width and height

Options.Area = new RectangleF(0, 0, 1, 1);

// save into the image format

diagram.Save(@"c:\temp\area.png", Options);