Raddrizza immagine

Raddrizza l’immagine o allinea il PDF utilizzando Java Cloud SDK

Un gran numero di immagini raster che riceviamo per lavoro e uso personale sono immagini scansionate tramite scanner digitale o possono essere un’immagine da un dispositivo mobile. Quindi ci sono buone possibilità che il testo all’interno di un’immagine non sia allineato correttamente e scorra lungo il margine della pagina orizzontalmente o verticalmente. In parole semplici, le immagini scansionate sono spesso inclinate (la carta è stata spostata/ruotata) sullo scanner. Ora, per risolvere tali problemi, optiamo per una tecnica chiamata raddrizzamento che è un processo mediante il quale l’inclinazione viene rimossa ruotando un’immagine della stessa quantità della sua inclinazione ma nella direzione opposta. La funzione Raddrizza è estremamente utile nell’elaborazione automatizzata delle immagini, quando le immagini provengono da uno scanner.

Ora in questo articolo, stiamo esaminando i dettagli su come allineare l’immagine utilizzando Java Cloud SDK. Quindi la funzione di allineamento funziona in due fasi, ovvero rileva l’angolo di inclinazione dell’immagine e quindi ruota l’immagine per correggere l’inclinazione. Possiamo applicare questa operazione sui fax ricevuti e utilizzando le informazioni (testo) sull’immagine, calcolare l’angolo di rotazione, non i margini della carta e soddisfare il requisito. Tuttavia, comprendiamo che l’operazione di raddrizzamento dell’immagine può essere eseguita su immagini a colori a 1 bit, 8 bit e 24 bit.

API per l’allineamento delle immagini

Per supportare l’immagine, abbiamo un’API basata su REST che offre le capacità per manipolare i file di immagini nel cloud. Ora, per le applicazioni Java, abbiamo sviluppato specificamente Aspose.Imaging Cloud SDK for Java che consente di implementare funzionalità di elaborazione delle immagini tramite codice Java. Ora, per allineare le immagini utilizzando l’SDK cloud Java, il primo passaggio consiste nell’aggiungere il relativo riferimento nel progetto java includendo le seguenti informazioni in pom.xml (progetto di tipo build 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>

Il passaggio successivo consiste nell’ottenere le credenziali del cliente da Cloud Dashboard e se non si dispone di un account su Aspose Cloud Dashboard, creare un account gratuito tramite un indirizzo email valido. Ora accedi utilizzando l’account appena creato e cerca/crea l’ID client e il segreto client su Aspose Cloud Dashboard.

Raddrizza immagine online utilizzando Java

Esploriamo i dettagli su come raddrizzare l’immagine utilizzando lo snippet di codice Java. Per questo esempio, stiamo caricando l’immagine TIFF dall’unità locale e applichiamo l’operazione di correzione della foto. Il file risultante viene quindi salvato nell’archivio cloud.

  • Innanzitutto, crea un oggetto di ImagingApi basato su credenziali client personalizzate
  • In secondo luogo, crea una variabile booleana che indichi di ridimensionare l’immagine proporzionalmente
  • Ora leggi il contenuto del TIFF sorgente usando il metodo readAllBytes(…) e passa all’array byte[].
  • Il passaggio successivo consiste nel creare un’istanza di CreateDeskewedImageRequest che richiede l’array Byte, il parametro facoltativo per il colore di sfondo e il nome della foto di raddrizzamento risultante
  • Infine, chiama il metodo createDeskewedImage(…) per raddrizzare l’immagine. Il TIFF risultante viene memorizzato nel cloud storage
// Ottieni ClientID e ClientSecret da https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// creare un oggetto Imaging
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// imposta la variabile per ridimensionare proporzionalmente l'immagine raddrizzata
boolean resizeProportionally = true;
			
// informazioni sul colore di sfondo
String bkColor = "white";

// caricare il file dall'unità locale
File f = new File("DeskewSampleImage.tiff");

// leggere il contenuto dell'immagine TIFF nell'array di byte
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// creare un oggetto per definire le proprietà dell'immagine di raddrizzamento
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,"Resultant.tiff",null);

// Raddrizza la foto e salva l'output nel cloud storage
imageApi.createDeskewedImage(request);

Ora, se desideri salvare il TIFF risultante sull’unità locale/di rete, prova a utilizzare il seguente frammento di codice.

// Ottieni ClientID e ClientSecret da https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// creare un oggetto Imaging
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// imposta la variabile per ridimensionare proporzionalmente l'immagine raddrizzata
boolean resizeProportionally = true;
			
// informazioni sul colore di sfondo
String bkColor = "white";

// caricare il file dall'unità locale
File f = new File("DeskewSampleImage.tif");

// leggere il contenuto dell'immagine TIFF nell'array di byte
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// creare un oggetto per definire le proprietà dell'immagine di raddrizzamento
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,null,null);

// Raddrizza la foto e restituisce l'output come oggetto stream
byte[] updatedImage = imageApi.createDeskewedImage(request);

// percorso per memorizzare l'immagine TIFF aggiornata
Path path = Paths.get("/Users/nayyer/Documents/", "DeskewSampleImage_out.tif").toAbsolutePath();

// chiama l'API per raddrizzare la foto e salvarla sull'unità locale
Files.write(path, updatedImage);
raddrizzare l'immagine

Anteprima della foto di raddrizzamento

L’immagine TIFF di esempio utilizzata nell’esempio precedente può essere scaricata da DeskewSampleImage.tif.

Raddrizza PDF utilizzando i comandi cURL

Potremmo ricevere un file PDF contenente immagini raddrizzate, quindi una soluzione rapida è estrarre le immagini dal file PDF e quindi raddrizzare le immagini. Ora, per soddisfare questo requisito, utilizzeremo qui due API Cloud, ovvero Aspose.PDF Cloud per estrarre le immagini dal file PDF e Aspose.Imaging Cloud per raddrizzare le foto. Tuttavia, prima di eseguire qualsiasi operazione, dobbiamo prima generare un token di accesso JWT (basato sulle credenziali del client) utilizzando il seguente comando.

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"

Una volta ottenuto il token JWT, dobbiamo estrarre le immagini PDF utilizzando l’API GrayscaleImage di Aspose.PDF Cloud. Le immagini vengono estratte in formato TIFF e archiviate nel cloud storage.

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>"

Ora che le immagini vengono estratte dal file PDF in formato TIFF, ora dobbiamo chiamare l’API DeskewImage di Aspose.Imaging Cloud per raddrizzare l’immagine. Poiché il file risultante viene restituito nel flusso di risposta, possiamo salvarlo sulla nostra unità locale.

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

Conclusione

A questo punto, abbiamo imparato alcuni passaggi sorprendenti e semplici per raddrizzare l’immagine e raddrizzare il PDF utilizzando Java cloud SDK. Quindi ora possiamo soddisfare i nostri requisiti utilizzando lo snippet di codice Java o utilizzando i comandi cURL. Allo stesso tempo, ti consigliamo vivamente di esplorare la Documentazione del prodotto per saperne di più su altre interessanti funzionalità offerte dall’API.

Tieni presente che tutti i nostri Cloud SDK sono sviluppati con licenza MIT, quindi il codice sorgente completo può essere scaricato da GitHub. Infine, nel caso in cui riscontri problemi durante l’utilizzo dell’API, puoi prendere in considerazione la possibilità di contattarci per una rapida risoluzione tramite il forum di supporto del prodotto gratuito.

articoli Correlati

Si prega di visitare i seguenti link per saperne di più su: