Redressement de l'image

Redresser l’image ou redresser le PDF à l’aide du SDK Java Cloud

Un grand nombre d’images raster que nous recevons pour le travail et l’utilisation personnelle sont des images numérisées via un scanner numérique ou peuvent être une image d’un appareil mobile. Il y a donc de bonnes chances que le texte à l’intérieur d’une image ne soit pas correctement aligné et traverse la marge de la page horizontalement ou verticalement. En termes simples, les images numérisées sont souvent de travers (le papier a été déplacé/tourné) sur le scanner. Maintenant, afin de résoudre ces problèmes, nous optons pour une technique appelée redressement qui est un processus par lequel l’inclinaison est supprimée en faisant pivoter une image de la même quantité que son inclinaison mais dans la direction opposée. La fonction de désalignement est extrêmement utile dans le traitement automatisé des images, lorsque les images proviennent d’un scanner.

Maintenant, dans cet article, nous examinons en détail comment redresser une image à l’aide de Java Cloud SDK. Ainsi, la fonction de désalignement fonctionne en deux étapes, c’est-à-dire qu’elle détecte l’angle d’inclinaison de l’image, puis fait pivoter l’image pour corriger l’inclinaison. Nous pouvons appliquer cette opération sur les fax reçus et en utilisant les informations (texte) sur l’image, calculer l’angle de rotation, pas les marges du papier et accomplir l’exigence. Néanmoins, nous comprenons que l’opération de redressement d’image peut être effectuée sur des images couleur 1 bit, 8 bits et 24 bits.

API d’image de désalignement

Afin de prendre en charge l’image, nous avons une API basée sur REST offrant les capacités de manipuler des fichiers d’images dans le Cloud. Maintenant, pour les applications Java, nous avons spécifiquement développé Aspose.Imaging Cloud SDK for Java qui vous permet de mettre en œuvre des capacités de traitement d’image via du code Java. Maintenant, pour désaligner les images à l’aide du SDK cloud Java, la première étape consiste à ajouter sa référence dans le projet Java en incluant les informations suivantes dans pom.xml (projet de type de construction maven).

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>

<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-imaging-cloud</artifactId>
        <version>22.4</version>
    </dependency>
</dependencies>

L’étape suivante consiste à obtenir les informations d’identification du client à partir de Cloud Dashboard et si vous n’avez pas de compte sur Aspose Cloud Dashboard, veuillez créer un compte gratuit via une adresse e-mail valide. Connectez-vous maintenant à l’aide du compte nouvellement créé et recherchez/créez l’ID client et le secret client sur le tableau de bord Aspose Cloud.

Redresser l’image en ligne avec Java

Explorons les détails sur la façon de redresser l’image à l’aide de l’extrait de code Java. Pour cet exemple, nous chargeons l’image TIFF à partir du lecteur local et appliquons l’opération de désalignement de la photo. Le fichier résultant est ensuite enregistré dans le stockage en nuage.

  • Tout d’abord, créez un objet d’ImagingApi basé sur les informations d’identification personnalisées du client
  • Deuxièmement, créez une variable booléenne qui indique de redimensionner l’image proportionnellement
  • Lisez maintenant le contenu du TIFF source à l’aide de la méthode readAllBytes(…) et passez au tableau byte[]
  • L’étape suivante consiste à créer une instance de CreateDeskewedImageRequest qui nécessite un tableau d’octets, un paramètre facultatif pour la couleur d’arrière-plan et le nom de la photo de redressement résultante.
  • Enfin, appelez la méthode createDeskewedImage(…) pour redresser l’image. Le TIFF résultant est stocké dans le stockage cloud
// Obtenez ClientID et ClientSecret à partir de https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// créer un objet d'imagerie
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// définir une variable pour redimensionner l'image redressée proportionnellement
boolean resizeProportionally = true;
			
// informations sur la couleur de fond
String bkColor = "white";

// charger le fichier depuis le lecteur local
File f = new File("DeskewSampleImage.tiff");

// lire le contenu de l'image TIFF dans un tableau d'octets
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// créer un objet pour définir les propriétés d'image de redressement
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,"Resultant.tiff",null);

// Redressez la photo et enregistrez la sortie dans le stockage en nuage
imageApi.createDeskewedImage(request);

Maintenant, si vous souhaitez enregistrer le TIFF résultant sur un lecteur local/réseau, essayez d’utiliser l’extrait de code suivant.

// Obtenez ClientID et ClientSecret à partir de https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// créer un objet d'imagerie
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// définir une variable pour redimensionner l'image redressée proportionnellement
boolean resizeProportionally = true;
			
// informations sur la couleur de fond
String bkColor = "white";

// charger le fichier depuis le lecteur local
File f = new File("DeskewSampleImage.tif");

// lire le contenu de l'image TIFF dans un tableau d'octets
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// créer un objet pour définir les propriétés d'image de redressement
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,null,null);

// Redresser la photo et renvoyer la sortie en tant qu'objet de flux
byte[] updatedImage = imageApi.createDeskewedImage(request);

// chemin pour stocker l'image TIFF mise à jour
Path path = Paths.get("/Users/nayyer/Documents/", "DeskewSampleImage_out.tif").toAbsolutePath();

// appeler l'API pour redresser la photo et l'enregistrer sur le lecteur local
Files.write(path, updatedImage);
image de redressement

Aperçu de la photo de désalignement

L’exemple d’image TIFF utilisé dans l’exemple ci-dessus peut être téléchargé à partir de DeskewSampleImage.tif.

Redresser le PDF à l’aide des commandes cURL

Nous pouvons recevoir un fichier PDF contenant des images redressées. Une solution rapide consiste donc à extraire les images du fichier PDF, puis à redresser les images. Maintenant, pour répondre à cette exigence, nous allons utiliser ici deux API Cloud, à savoir Aspose.PDF Cloud pour extraire des images d’un fichier PDF et Aspose.Imaging Cloud pour redresser les photos. Cependant, avant d’effectuer une opération, nous devons d’abord générer un jeton d’accès JWT (basé sur les informations d’identification du client) à l’aide de la commande suivante.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=bb959721-5780-4be6-be35-ff5c3a6aa4a2&client_secret=4d84d5f6584160cbd91dba1fe145db14" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Une fois que nous avons le jeton JWT, nous devons extraire les images PDF à l’aide de l’API GrayscaleImage d’Aspose.PDF Cloud. Les images sont extraites au format TIFF et sont stockées dans le stockage en nuage.

curl -v -X PUT "https://api.aspose.cloud/v3.0/pdf/Resultant.pdf/pages/1/images/extract/tiff?width=0&height=0" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

Maintenant que les images sont extraites du fichier PDF au format TIFF, nous devons maintenant appeler l’API DeskewImage d’Aspose.Imaging Cloud pour redresser l’image. Étant donné que le fichier résultant est renvoyé dans le flux de réponse, nous pouvons donc l’enregistrer sur notre lecteur local.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/image1.tiff/deskew?resizeProportionally=true&bkColor=White" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o Deskewed.tiff

Conclusion

À ce moment-là, nous avons appris quelques étapes étonnantes et simples pour redresser l’image ainsi que le PDF de redressement à l’aide du SDK cloud Java. Nous pouvons donc maintenant répondre à nos exigences en utilisant un extrait de code Java ou en utilisant les commandes cURL. Dans le même temps, nous vous encourageons fortement à explorer Product Documentation pour en savoir plus sur les autres fonctionnalités intéressantes offertes par l’API.

Veuillez noter que tous nos SDK Cloud sont développés sous licence MIT afin que le code source complet puisse être téléchargé depuis GitHub. Enfin, si vous rencontrez des problèmes lors de l’utilisation de l’API, vous pouvez envisager de nous contacter pour une résolution rapide via product support forum gratuit.

Articles Liés

Veuillez visiter les liens suivants pour en savoir plus sur :