Ernte-EPS | C# .NET API-Lösung

Überblick

In diesem Artikel wird erklärt, wie man EPS mit C# zuschneidet. Es behandelt die folgenden Themen.

C#-Crop-EPS-Beschreibung

Das Zuschneiden des Bildes ist ein Vorgang, der einen oder mehrere Ränder des Bildes ändert: links, rechts, oben und unten. Mit anderen Worten: Es schneidet den Bildinhalt an den Rändern ab. Daher ist die resultierende Darstellung des EPS-Bilds immer kleiner als das Original. Das Volumen der Datei wird nicht geändert, da unsere Lösung nicht mit dem Inhalt, sondern mit dem Header der EPS-Datei funktioniert.

Die Ränder des EPS-Bildes werden durch BoundingBox-Metadaten definiert. Um zuzuschneiden, oder mit anderen Worten, einen neuen Begrenzungsrahmen einzurichten, müssen wir den vorhandenen Begrenzungsrahmen des EPS-Bildes kennen. Andernfalls können wir die Werte des neuen Begrenzungsrahmens außerhalb des vorhandenen Begrenzungsrahmens zuweisen, was zu einem Fehler führt. Daher folgen die Schritte zum Zuschneiden eines EPS-Bilds in C#:

  1. Initialisieren Sie das Objekt PsDocument mit dem Eingabestream, der die EPS-Datei enthält.
  2. Extrahieren Sie den vorhandenen Begrenzungsrahmen des Bildes mit der statischen Methode ExtractEpsBoundingBox.
  3. Erstellen Sie den Ausgabestream für die resultierende EPS-Datei.
  4. Erstellen Sie einen neuen Begrenzungsrahmen.
  5. Beschneiden Sie das PsDocument-Objekt mit einem neuen Begrenzungsrahmen mit der statischen Methode CropEps.

Sie können die Qualität von Aspose.Page EPS Crop überprüfen und die Ergebnisse über den kostenlosen Online-Dienst Crop EPS anzeigen und dann die resultierende EPS-Datei mit unserer Webanwendung EPS Viewer anzeigen.n.

EPS in C# zuschneiden

Im folgenden C#-Codeausschnitt erhalten wir den vorhandenen Begrenzungsrahmen des Bildes und beschneiden 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

Siehe Crop EPS in Java und C++.

Ursprüngliches EPS-Bild
Erstes Bild
Zugeschnittenes EPS-Bild
Zugeschnittenes Bild

Entwicklung eines KI-Agenten für EPS-Zuschnitt

Wenn Sie einen eigenen KI-Agenten für die automatisierte Bildverarbeitung und den EPS-Vektorzuschnitt auf Basis von Aspose.Page entwickeln möchten, könnte der Implementierungsablauf wie folgt aussehen:

Anstatt eine Datei zu rastern und visuell zuzuschneiden, berechnet der KI-Agent die Koordinatenbegrenzungsrahmen nativ, um einen optimierten Workflow zu gewährleisten.

  1. Extraktion der Geometrieabsicht (LLM-Analyseebene) Der Benutzer gibt eine EPS-Datei zusammen mit Layoutvorgaben in natürlicher Sprache ein (z. B. „Die unteren 50 Punkte des weißen Randes abschneiden“ oder „Den zentralen 200x200 Pixel großen Bildbereich isolieren“). Das LLM übersetzt die Eingabe in strukturelle Koordinatenänderungen (z. B. durch Identifizierung von Anpassungen relativ zu den linken, oberen, rechten oder unteren Begrenzungsrahmen).

  2. Erfassung der nativen Begrenzungsrahmen Um zu verhindern, dass das LLM Koordinaten berechnet, die außerhalb der tatsächlichen Abmessungen der Grafik liegen (was eine Compiler-Ausnahme auslösen würde), fragt der Agent die Attribute des Originaldokuments ab. Das System lädt das Zielobjekt über PsDocument und ruft document.ExtractEpsBoundingBox() auf.

Dieses Array ([x0, y0, x1, y1]) dient als schützende Begrenzungsbedingung für die KI:

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

  1. Koordinatenneuberechnung und Kalibrierung (Mapping-Ebene) Der Agent übergibt das extrahierte Begrenzungsarray und die vom Benutzer eingegebene Strukturanweisung an seine interne Berechnungsmatrix. Anschließend berechnet er die Zielkoordinatenparameter float[] newBoundingBox. Falls der Benutzer eine Ausrichtung auf den Mittelpunkt wünscht, berechnet die KI den geometrischen Mittelpunkt relativ zu den ursprünglichen Parametern und verschiebt die Begrenzungswerte gleichmäßig.

  2. Metadaten-Patching und Asset-Serialisierung (Ausführungsknoten) Das kalibrierte Array wird direkt in die Dokumentstruktur geschrieben, ohne dass ein vollständiges, ressourcenintensives Canvas-Re-Rendering initialisiert wird.

Das System führt den nativen Befehl document.CropEps(outputPath, newBoundingBox) aus. Durch die Aktualisierung ausschließlich der PostScript-Seitenbeschreibungen liefert das System der Endpunktschnittstelle umgehend eine perfekt beschnittene Datei.

Testen Sie das Zuschneiden von EPS online in unserer Webanwendung zum Zuschneiden von EPS. Sie können die EPS-Datei zuschneiden und das Ergebnis in wenigen Sekunden herunterladen.

Sie können Beispiele und Datendateien von GitHub herunterladen.