Обрезка EPS | Решение C# .NET API

Обзор

В этой статье объясняется, как обрезать EPS с помощью C#. Он охватывает следующие темы.

C# Обрезка EPS Описание

Обрезка изображения — это операция, изменяющая одно или несколько полей изображения: левое, правое, верхнее и нижнее. Другими словами, он обрезает содержимое изображения по краям.

Таким образом, размер результирующего представления изображения EPS всегда будет меньше исходного. Объем файла не будет изменен, поскольку наше решение не работает с содержимым, а работает с заголовком файла EPS.

Поля изображения EPS определяются метаданными BoundingBox. Чтобы обрезать или, другими словами, установить новую ограничивающую рамку, мы должны знать существующую ограничивающую рамку изображения EPS. В противном случае мы можем присвоить значения новой ограничивающей рамки за пределами существующей ограничивающей рамки, что приведет к ошибке. Итак, шаги по обрезке изображения EPS в C# следующие:

  1. Инициализируйте объект PsDocument входным потоком, содержащим файл EPS.
  2. Извлеките существующую ограничивающую рамку изображения с помощью статического метода ExtractEpsBoundingBox.
  3. Создайте выходной поток для результирующего файла EPS.
  4. Создайте новую ограничивающую рамку.
  5. Обрежьте объект PsDocument с помощью новой ограничивающей рамки с помощью статического метода CropEps.

You can check the quality of Aspose.Page EPS Crop and view the results via free online Crop EPS and then view the resulting EPS file with our EPS Viewer web application.

Обрезка EPS в C#

В следующем фрагменте кода C# мы получаем существующую ограничивающую рамку изображения и обрезаем EPS:

 1// Cropping EPS file.
 2
 3// Initialize PS document with EPS file
 4PsDocument document = new PsDocument(DataDir + "input.eps");
 5
 6string outputFileName = "output_crop.eps";
 7
 8//Get initial bounding box of EPS image
 9int[] initialBoundingBox = document.ExtractEpsBoundingBox();
10
11//Create new bounding box
12//Bounding box is represented by 4 numbers: x0, y0, x, y, where x0 - left margin, y0 - top margin, x - (x0 + width), y - (y0 + height)
13float[] newBoundingBox = new float[] { 260, 300, 480, 432 };
14
15//Crop EPS image and save to the output stream                    
16//Croping of image is changing of its bounding box so that new values of bounding box will be within initial bounding box, that is
17//initialBoundingBox[0] <= newBoundingBox[0] <= initialBoundingBox[2]
18//initialBoundingBox[1] <= newBoundingBox[1] <= initialBoundingBox[3]
19//initialBoundingBox[0] <= newBoundingBox[2] <= initialBoundingBox[2]
20//initialBoundingBox[1] <= newBoundingBox[3] <= initialBoundingBox[3]
21document.CropEps(OutputDir + outputFileName, newBoundingBox);
Example-CropEPS.cs hosted with ❤ by GitHub

См. Обрезку EPS в Java и C++.

Исходное изображение в формате EPS
Исходное изображение
Обрезанное изображение EPS
Обрезанное изображение

Создание ИИ-агента для обрезки EPS-файлов

Если вам нужен собственный ИИ-агент для автоматической обработки изображений и обрезки векторных EPS-файлов на основе Aspose.Page, его рабочий процесс может выглядеть следующим образом:

Вместо попытки растрирования и визуальной нарезки файла, ИИ-агент вычисляет координатные ограничивающие рамки, обеспечивая оптимизированный рабочий процесс.

  1. Извлечение геометрических намерений (слой анализа LLM) Пользователь вводит EPS-файл вместе с ограничениями компоновки на естественном языке (например, «Вырезать нижние 50 точек белого поля» или «Изолировать центральную область изображения размером 200x200 пикселей»). LLM преобразует запрос в структурные изменения координат (например, определение корректировок относительно левой, верхней, правой или нижней граничных рамок).

  2. Загрузка исходных ограничивающих рамок Чтобы предотвратить искажение координат LLM, выходящих за пределы фактических размеров графического изображения (что вызывает исключение компилятора), агент запрашивает атрибуты исходного документа. Система загружает целевой ресурс через PsDocument и вызывает document.ExtractEpsBoundingBox(). Этот массив ([x0, y0, x1, y1]) действует как защитное ограничение границ для ИИ:

Constraint Loop: initialBoundingBox[0] ≤ newBoundingBox[0] ≤ initialBoundingBox[2]

  1. Перерасчет и калибровка координат (слой сопоставления) Агент передает извлеченный массив границ и структурную подсказку пользователя в свою внутреннюю вычислительную матрицу. Затем он вычисляет параметры целевых координат float[] newBoundingBox. Если пользователь запрашивает выравнивание по центру, ИИ вычисляет геометрический центр относительно исходных параметров и равномерно смещает ограничивающие значения.

  2. Исправление метаданных и сериализация ресурсов (узел выполнения) Откалиброванный массив записывается непосредственно в структуру документа без инициализации полной, ресурсоемкой перерисовки холста. Система выполняет собственную команду document.CropEps (outputPath, newBoundingBox). Обновляя только описания страниц PostScript, система мгновенно доставляет идеально обрезанный файл в интерфейс конечной точки.

Оцените обрезку EPS онлайн на нашем веб-приложении Crop EPS. Вы можете обрезать файл EPS и загрузить результат за несколько секунд.

Вы можете скачать примеры и файлы данных с GitHub.