Cortar EPS | Solução API C# .NET

Visão geral

Este artigo explica como recortar EPS utilizando C#. Aborda os seguintes tópicos.

Descrição de Recortar EPS em C#

O recorte da imagem é uma operação que altera uma ou várias margens da imagem: esquerda, direita, superior e inferior. Por outras palavras, corta o conteúdo da imagem a partir das margens. Assim sendo, o tamanho da representação resultante da imagem EPS será sempre menor que o original. O volume do ficheiro não será alterado, uma vez que a nossa solução não funciona com o conteúdo, mas sim com o cabeçalho do ficheiro EPS.

As margens da imagem EPS são definidas pelos metadados da BoundingBox. Para recortar, ou por outras palavras, configurar uma nova caixa delimitadora, precisamos de saber qual é a caixa delimitadora existente da imagem EPS. Caso contrário, podemos atribuir os valores da nova caixa delimitadora fora da caixa delimitadora existente, o que resultará num erro. Assim, os passos para recortar uma imagem EPS em C# são os seguintes:

  1. Inicialize o objeto PsDocument com o fluxo de entrada que contém o ficheiro EPS.
  2. Extraia a caixa delimitadora existente da imagem utilizando o método estático ExtractEpsBoundingBox.
  3. Crie o fluxo de saída para o ficheiro EPS resultante.
  4. Crie uma nova caixa delimitadora.
  5. Recorte o objeto PsDocument com uma nova caixa delimitadora utilizando o método estático CropEps.

Pode verificar a qualidade do Recorte EPS do Aspose.Page e visualizar os resultados online gratuitamente através do Recortar EPS e, em seguida, visualizar o ficheiro EPS resultante com a nossa aplicação web Visualizador de EPS.

Cortar EPS em C#

No seguinte excerto de código C# , obtemos a caixa delimitadora existente da imagem e cortamos o 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

Consulte Cortar EPS em Java e C++.

Imagem EPS Inicial
Imagem Inicial
Imagem EPS cortada
Imagem Cortada

Criação de um Agente de IA para Recorte de EPS

Se pretende o seu próprio Agente de IA para Processamento Automatizado de Imagens e Recorte Vetorial de EPS baseado no Aspose.Page, o fluxo de trabalho de implementação pode ser o seguinte:

*Em vez de tentar rasterizar e fatiar visualmente um ficheiro, o agente de IA calcula nativamente as caixas delimitadoras de coordenadas para fornecer um fluxo de trabalho otimizado. *

  1. Extração da intenção geométrica (camada de análise LLM) O utilizador introduz um ficheiro EPS juntamente com restrições de layout em linguagem natural (por exemplo, “Recortar os 50 pontos de margem branca inferiores” ou “Isolar a área central da arte de 200x200 pixels”).

O LLM traduz o pedido em modificações estruturais de coordenadas (por exemplo, identificando ajustes em relação às caixas delimitadoras esquerda, superior, direita ou inferior).

  1. Ingestão nativa da caixa delimitadora Para evitar que o LLM crie coordenadas que recortem fora das dimensões reais do gráfico (o que gera uma exceção de compilação), o agente consulta os atributos do documento original. O sistema carrega o recurso de destino através de PsDocument e invoca document.ExtractEpsBoundingBox().

Este array ([x0, y0, x1, y1]) atua como uma restrição de limite protetora para a IA:

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

  1. Recálculo e calibração de coordenadas (Camada de mapeamento) O agente passa o array de limites extraído e o pedido estrutural do utilizador para a sua matriz de cálculo interna. Em seguida, calcula os parâmetros de coordenadas de destino float[] newBoundingBox. Se o utilizador solicitar o alinhamento do centro de focagem, a IA calcula o centro geométrico em relação aos parâmetros originais e desloca os valores limite uniformemente.

  2. Correção de metadados e serialização do recurso (Nó de execução) O array calibrado é gravado diretamente na estrutura do documento sem inicializar uma renderização completa e dispendiosa do ecrã.

O sistema executa o comando nativo document.CropEps (outputPath, newBoundingBox). Atualizando apenas as descrições da página PostScript, o sistema entrega instantaneamente um ficheiro perfeitamente recortado à interface do endpoint.

Avalie o corte de EPS online na nossa aplicação web Cortar EPS. Pode cortar o ficheiro EPS e descarregar o resultado em poucos segundos.

Pode descarregar exemplos e ficheiros de dados do GitHub.