Ritaglia EPS | Soluzione API C# .NET

Panoramica

Questo articolo spiega come ritagliare un file EPS usando C#. Copre i seguenti argomenti.

Descrizione di Ritaglia EPS in C#

Ritagliare un’immagine è un’operazione che modifica uno o più margini dell’immagine: sinistro, destro, superiore e inferiore. In altre parole, ritaglia il contenuto dell’immagine dai bordi. Pertanto, la dimensione della rappresentazione risultante dell’immagine EPS sarà sempre inferiore all’originale. Il volume del file non verrà modificato poiché la nostra soluzione non lavora con il contenuto, ma con l’intestazione del file EPS.

I margini dell’immagine EPS sono definiti dai metadati del BoundingBox. Per ritagliare, o in altre parole, per impostare un nuovo boundingbox, è necessario conoscere il boundingbox esistente dell’immagine EPS. In caso contrario, potremmo assegnare i valori del nuovo riquadro di delimitazione al di fuori di quello esistente, generando un errore. Quindi, ecco i passaggi per ritagliare un’immagine EPS in C#:

  1. Inizializzare l’oggetto PsDocument con il flusso di input contenente il file EPS.
  2. Estrarre il riquadro di delimitazione esistente dell’immagine utilizzando il metodo statico ExtractEpsBoundingBox.
  3. Creare il flusso di output per il file EPS risultante.
  4. Creare un nuovo riquadro di delimitazione. 5. Ritaglia l’oggetto PsDocument con un nuovo riquadro di delimitazione utilizzando il metodo statico CropEps.

Puoi verificare la qualità del ritaglio EPS di Aspose.Page e visualizzare i risultati tramite la funzione online gratuita Ritaglia EPS, quindi visualizzare il file EPS risultante con la nostra applicazione web Visualizzatore EPS.

Ritaglia EPS in C#

Nel seguente frammento di codice C# otteniamo il riquadro di delimitazione esistente dell’immagine e ritagliamo l’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

Vedi Ritaglia EPS in Java e C++.

Immagine EPS iniziale
Immagine iniziale
Immagine EPS ritagliata
Immagine ritagliata

Creazione di un agente AI per il ritaglio di file EPS

Se desideri un agente AI per l’elaborazione automatizzata delle immagini e il ritaglio di file EPS vettoriali basato su Aspose.Page, il flusso di lavoro di implementazione potrebbe essere il seguente:

Anziché tentare di rasterizzare e sezionare visivamente un file, l’agente AI calcola nativamente i frame di delimitazione delle coordinate per offrire un flusso di lavoro ottimizzato.

  1. Estrazione dell’intento geometrico (livello di analisi LLM) L’utente inserisce un file EPS insieme a vincoli di layout in linguaggio naturale (ad esempio, “Ritaglia i 50 punti inferiori del margine bianco” o “Isola l’area grafica centrale di 200x200 pixel”).

LLM traduce il prompt in modifiche delle coordinate strutturali (ad esempio, identificando le regolazioni rispetto ai frame di delimitazione sinistro, superiore, destro o inferiore).

  1. Acquisizione nativa del riquadro di delimitazione Per evitare che LLM generi coordinate che ritagliano al di fuori delle dimensioni effettive della grafica (il che genererebbe un’eccezione del compilatore), l’agente interroga gli attributi del documento originale. Il sistema carica l’asset di destinazione tramite PsDocument e richiama document.ExtractEpsBoundingBox().

Questo array ([x0, y0, x1, y1]) funge da vincolo di delimitazione protettivo per l’IA:

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

  1. Ricalcolo e calibrazione delle coordinate (Livello di mappatura) L’agente passa l’array di delimitazione estratto e il prompt strutturale dell’utente alla sua matrice di calcolo interna. Quindi calcola i parametri delle coordinate di destinazione float[] newBoundingBox. Se l’utente richiede l’allineamento centro-fuoco, l’IA calcola il centro geometrico rispetto ai parametri originali e compensa uniformemente i valori di delimitazione.

  2. Patching dei metadati e serializzazione delle risorse (nodo di esecuzione) L’array calibrato viene scritto direttamente nella struttura del documento senza inizializzare un rendering completo e dispendioso in termini di risorse della tela.

Il sistema esegue il comando nativo document.CropEps (outputPath, newBoundingBox). Aggiornando solo le descrizioni della pagina PostScript, il sistema fornisce istantaneamente all’interfaccia dell’endpoint un file perfettamente ritagliato.

Prova a ritagliare EPS online sulla nostra applicazione web Ritaglia EPS. Puoi ritagliare il file EPS e scaricare il risultato in pochi secondi.

È possibile scaricare esempi e file di dati da GitHub.