Recortar EPS | Solución API C# .NET
Descripción general
Este artículo explica cómo recortar EPS usando C#. Cubre los siguientes temas.
Descripción de EPS de recorte de C#
Recortar la imagen es una operación que cambia uno de los o varios márgenes de la imagen: izquierdo, derecho, superior e inferior. En otras palabras, corta el contenido de la imagen desde los bordes. Por lo tanto, el tamaño de la representación resultante de la imagen EPS siempre será menor que el original. El volumen del archivo no cambiará ya que nuestra solución no funciona con el contenido pero sí con el encabezado del archivo EPS.
Los márgenes de la imagen EPS están definidos por los metadatos de BoundingBox. Para recortar, o en otras palabras, configurar un nuevo cuadro delimitador, debemos conocer el cuadro delimitador existente de la imagen EPS. De lo contrario, podemos asignar los valores del nuevo cuadro delimitador fuera del cuadro delimitador existente, lo que genera un error. Entonces los pasos para recortar una imagen EPS en C# son los siguientes:
- Inicialice el objeto PsDocument con el flujo de entrada que contiene el archivo EPS.
- Extraiga el cuadro delimitador existente de la imagen utilizando el método estático ExtractEpsBoundingBox.
- Cree el flujo de salida para el archivo EPS resultante.
- Cree un nuevo cuadro delimitador.
- Recorte el objeto PsDocument con un nuevo cuadro delimitador con el método estático CropEps.
Puede comprobar la calidad de Aspose.Page EPS Crop y ver los resultados a través de Crop EPS en línea gratuito y luego ver el archivo EPS resultante con nuestra aplicación web EPS Viewer.
Recortar EPS en C#
En el siguiente fragmento de código C# obtenemos el cuadro delimitador existente de la imagen y recortamos el 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);
Imagen inicial
Imagen recortada
Creación de un agente de IA para recorte de EPS
Si desea su propio agente de IA para el procesamiento automatizado de imágenes y el recorte vectorial de EPS basado en Aspose.Page, su flujo de trabajo de implementación podría ser el siguiente:
En lugar de intentar rasterizar y segmentar visualmente un archivo, el agente de IA calcula los marcos delimitadores de coordenadas de forma nativa para ofrecer un flujo de trabajo optimizado.
- Extracción de la intención geométrica (capa de análisis LLM) El usuario introduce un archivo EPS junto con restricciones de diseño en lenguaje natural (por ejemplo, “Recortar los 50 puntos inferiores del margen blanco” o “Aislar el área central de la ilustración de 200x200 píxeles”).
El LLM traduce la indicación en modificaciones de coordenadas estructurales (por ejemplo, identificando ajustes relativos a los marcos delimitadores izquierdo, superior, derecho o inferior).
- Ingesta nativa de cuadros delimitadores
Para evitar que el LLM genere coordenadas que recorten fuera de las dimensiones reales del gráfico (lo que provocaría una excepción del compilador), el agente consulta los atributos del documento original. El sistema carga el recurso objetivo mediante
PsDocumente invocadocument.ExtractEpsBoundingBox(). Este array ([x0, y0, x1, y1]) actúa como una restricción de límite para la IA:
Bucle de restricción: initialBoundingBox[0] ≤ newBoundingBox[0] ≤ initialBoundingBox[2]
Recálculo y calibración de coordenadas (Capa de mapeo) El agente pasa el array de límites extraído y la solicitud estructural del usuario a su matriz de cálculo interna. A continuación, calcula los parámetros de coordenadas objetivo
float[] newBoundingBox. Si el usuario solicita la alineación con el centro, la IA calcula el centro geométrico en relación con los parámetros originales y desplaza los valores de los límites de forma uniforme.Corrección de metadatos y serialización del recurso (Nodo de ejecución) El array calibrado se escribe directamente en la estructura del documento sin inicializar una renderización completa del lienzo, que consume muchos recursos. El sistema ejecuta el comando nativo
document.CropEps(outputPath,newBoundingBox). Al actualizar únicamente las descripciones de página PostScript, el sistema entrega instantáneamente un archivo perfectamente recortado a la interfaz del punto final.
Evalúe el recorte de EPS en línea en nuestra aplicación web para recortar EPS. Puede recortar el archivo EPS y descargar el resultado en unos segundos.
Puede descargar ejemplos y archivos de datos desde GitHub.