Recadrer EPS | Solution API C++
Aperçu
Cet article explique comment recadrer EPS à l’aide de C++. Il couvre les sujets suivants.
C++ Culture 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 // The path to the documents directory.
2 System::String dataDir = RunExamples::GetDataDir_WorkingWithEPS();
3
4 //Create an input stream for EPS file
5 {
6 System::SharedPtr<System::IO::Stream> inputEpsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"input.eps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
7 // Clearing resources under 'using' statement
8 System::Details::DisposeGuard<1> __dispose_guard_1({ inputEpsStream});
9 // ------------------------------------------
10
11 try
12 {
13 //Initialize PsDocument object with input stream
14 System::SharedPtr<PsDocument> doc = System::MakeObject<PsDocument>(inputEpsStream);
15
16 //Get initial bounding box of EPS image
17 System::ArrayPtr<int32_t> initialBoundingBox = doc->ExtractEpsBoundingBox();
18
19 //Create an output stream for resized EPS
20 {
21 System::SharedPtr<System::IO::Stream> outputEpsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"output_crop.eps", System::IO::FileMode::Create, System::IO::FileAccess::Write);
22 // Clearing resources under 'using' statement
23 System::Details::DisposeGuard<1> __dispose_guard_0({ outputEpsStream});
24 // ------------------------------------------
25
26 try
27 {
28 //Create new bounding box
29 //Bounding box is represented by 4 numbers: x0, y0, x, y, where x0 - left margin, y0 - top margin, x - (x0 + width), y - (y0 + height)
30 System::ArrayPtr<float> newBoundingBox = System::MakeArray<float>({260, 300, 480, 432});
31
32 //Crop EPS image and save to the output stream
33 //Croping of image is changing of its bounding box so that new values of bounding box will be within initial bounding box, that is
34 //initialBoundingBox[0] <= newBoundingBox[0] <= initialBoundingBox[2]
35 //initialBoundingBox[1] <= newBoundingBox[1] <= initialBoundingBox[3]
36 //initialBoundingBox[0] <= newBoundingBox[2] <= initialBoundingBox[2]
37 //initialBoundingBox[1] <= newBoundingBox[3] <= initialBoundingBox[3]
38 doc->CropEps(outputEpsStream, newBoundingBox);
39 }
40 catch(...)
41 {
42 __dispose_guard_0.SetCurrentException(std::current_exception());
43 }
44 }
45 }
46 catch(...)
47 {
48 __dispose_guard_1.SetCurrentException(std::current_exception());
49 }
50 }
Image initiale
Image recadrée
É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 à partir de
GitHub.