Recadrer EPS | Solution API C#.NET
Aperçu
Cet article explique comment recadrer EPS à l’aide de C#. Il couvre les sujets suivants.
C# Recadrage EPS descriptif
Le recadrage de l’image est une opération qui modifie une ou plusieurs marges de l’image : gauche, droite, haut et bas. En d’autres termes, cela coupe le contenu de l’image des bords. Ainsi, la taille de la représentation résultante de l’image EPS sera toujours inférieure à l’originale. Le volume du fichier ne sera pas modifié car notre solution ne fonctionne pas avec le contenu mais fonctionne avec l’en-tête du fichier EPS.
Les marges de l’image EPS sont définies par les métadonnées BoundingBox. Afin de recadrer, ou en d’autres termes, de créer un nouveau cadre de délimitation, nous devons connaître le cadre de délimitation existant de l’image EPS. Sinon, nous pouvons attribuer les valeurs du nouveau cadre de délimitation en dehors du cadre de délimitation existant, ce qui entraîne une erreur. Ainsi, les étapes de recadrage d’une image EPS en C# sont les suivantes :
- Initialisez l’objet PsDocument avec le flux d’entrée contenant le fichier EPS.
- Extrayez le cadre de délimitation existant de l’image à l’aide de la méthode statique ExtractEpsBoundingBox.
- Créez le flux de sortie pour le fichier EPS résultant.
- Créez un nouveau cadre de délimitation.
- Recadrez l’objet PsDocument avec un nouveau cadre de délimitation avec la méthode statique CropEps.
Vous pouvez vérifier la qualité du recadrage EPS Aspose.Page et afficher les résultats via la fonction gratuite en ligne Crop EPS, puis afficher le fichier EPS résultant avec notre application Web EPS Viewer.
Recadrer l’EPS en C#
Dans l’extrait de code C# suivant nous obtenons le cadre de délimitation existant de l’image et recadrons 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);
Image initiale
Image recadrée
Création d’un agent IA de recadrage EPS
Si vous souhaitez créer votre propre agent IA pour le traitement automatisé d’images et le recadrage vectoriel EPS basé sur Aspose.Page, son flux de travail pourrait ressembler à ceci :
Plutôt que de tenter de rasteriser et de découper visuellement un fichier, l’agent IA calcule nativement les cadres de délimitation des coordonnées pour un flux de travail optimisé.
- Extraction de l’intention géométrique (couche d’analyse LLM)
L’utilisateur saisit un fichier EPS ainsi que des contraintes de mise en page en langage naturel (par exemple, « Recadrer les 50 points inférieurs de la marge blanche » ou « Isoler la zone centrale de l’illustration de 200 x 200 pixels »).
Le LLM traduit l’instruction en modifications de coordonnées structurelles (par exemple, en identifiant les ajustements relatifs aux cadres de délimitation gauche, supérieur, droit ou inférieur).
- Ingestion native des cadres de délimitation
Pour éviter que le LLM ne génère des coordonnées erronées qui dépassent les dimensions réelles de l’image (ce qui provoque une exception de compilation), l’agent interroge les attributs du document d’origine. Le système charge la ressource cible via PsDocument et appelle document.ExtractEpsBoundingBox().
Ce tableau ([x0, y0, x1, y1]) sert de contrainte de protection des limites pour l’IA :
Boucle de contrainte : initialBoundingBox[0] ≤ newBoundingBox[0] ≤ initialBoundingBox[2]
- Recalcul et étalonnage des coordonnées (Couche de cartographie)
L’agent transmet le tableau des limites extraites et l’invite structurelle de l’utilisateur à sa matrice de calcul interne. Il calcule ensuite les paramètres de coordonnées cibles float[] newBoundingBox. Si l’utilisateur demande un alignement sur le centre, l’IA calcule le centre géométrique par rapport aux paramètres d’origine et décale uniformément les valeurs de limite.
- Mise à jour des métadonnées et sérialisation des ressources (Nœud d’exécution)
Le tableau calibré est écrit directement dans la structure du document sans nécessiter un rendu complet et gourmand en ressources.
Le système exécute la commande native document.CropEps(outputPath, newBoundingBox). En mettant à jour uniquement les descriptions de page PostScript, le système fournit instantanément un fichier parfaitement rogné à l’interface du point de terminaison.
Évaluez le recadrage EPS en ligne sur notre application Web de recadrage EPS. Vous pouvez recadrer un fichier EPS et télécharger le résultat en quelques secondes.
Vous pouvez télécharger des exemples et des fichiers de données depuis GitHub.