Skæv billede

Deskew Image eller Deskew PDF ved hjælp af Java Cloud SDK

Et stort antal rasterbilleder, som vi modtager til arbejde og privat brug, er scannede billeder enten gennem digital scanner eller kan være et billede fra mobilenhed. Så der er rimelige chancer for, at teksten inde i et billede ikke er korrekt justeret og løber hen over sidemargenen enten vandret eller lodret. Med enkle ord er de scannede billeder ofte skæve (papiret blev flyttet/roteret) på scanneren. For nu at løse sådanne problemer vælger vi en teknik kaldet deskewing, som er en proces, hvor skævhed fjernes ved at rotere et billede med samme mængde som skævheden, men i den modsatte retning. Deskew-funktionen er yderst nyttig i automatiseret billedbehandling, når billederne kommer fra en scanner.

Nu i denne artikel ser vi nærmere på detaljerne om, hvordan man fjerner et billede ved hjælp af Java Cloud SDK. Så deskew-funktionen fungerer i to trin, dvs. registrerer billedets skævhed og roterer derefter billedet for at rette skævheden. Vi kan anvende denne handling på modtagne faxer og ved at bruge informationen (teksten) på billedet, beregne vinklen på rotationen, ikke papirets marginer og opfylde kravet. Ikke desto mindre forstår vi, at billedjustering kan udføres på 1 bit, 8 bit og 24 bit farvebilleder.

Deskew Image API

For at understøtte billedet har vi REST-baseret API, der tilbyder mulighederne for at manipulere billedfiler i skyen. Nu til Java-applikationer har vi specifikt udviklet Aspose.Imaging Cloud SDK til Java, som gør det muligt for dig at implementere billedbehandlingsfunktioner via Java-kode. For nu at fjerne skævvridning af billeder ved hjælp af Java Cloud SDK, er det første trin at tilføje dets reference i java-projektet ved at inkludere følgende oplysninger i pom.xml (maven build type project).

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

Det næste trin er at få klientoplysningerne fra Cloud Dashboard, og hvis du ikke har en konto over Aspose Cloud Dashboard, skal du oprette en gratis konto via en gyldig e-mailadresse. Log nu ind med en nyoprettet konto, og find/opret klient-id og klienthemmelighed på Aspose Cloud Dashboard.

Deskew Image Online ved hjælp af Java

Lad os undersøge detaljerne om, hvordan man fjerner et billede ved hjælp af Java-kodestykke. I dette eksempel indlæser vi TIFF-billede fra lokalt drev og anvender deskew-fotooperation. Den resulterende fil gemmes derefter i skylageret.

  • For det første skal du oprette et objekt af ImagingApi baseret på personlige klientoplysninger
  • For det andet skal du oprette en boolesk variabel, som indikerer, at billedet skal ændres proportionalt
  • Læs nu indholdet af kilde-TIFF ved hjælp af readAllBytes(…)-metoden og overfør til byte[]-array
  • Det næste trin er at oprette en forekomst af CreateDeskewedImageRequest, som kræver Byte-array, valgfri parameter for baggrundsfarve og navnet på det resulterende deskew-foto
  • Til sidst skal du kalde metoden createDeskewedImage(…) for at rette billedet. Den resulterende TIFF gemmes i skylager
// Hent ClientID og ClientSecret fra https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// oprette billedobjekt
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// sæt variabel for at ændre størrelsen på det skæve billede proportionalt
boolean resizeProportionally = true;
			
// baggrundsfarveoplysninger
String bkColor = "white";

// indlæse filen fra det lokale drev
File f = new File("DeskewSampleImage.tiff");

// læse indholdet af TIFF-billede til byte-array
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// oprette et objekt for at definere egenskaber for deskew image
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,"Resultant.tiff",null);

// Fjern billedet og gem output i skylageret
imageApi.createDeskewedImage(request);

Hvis du nu vil gemme den resulterende TIFF på lokalt/netværksdrev, så prøv venligst at bruge følgende kodestykke.

// Få ClientID og ClientSecret fra https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// oprette billedobjekt
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// sæt variabel for at ændre størrelsen på det skæve billede proportionalt
boolean resizeProportionally = true;
			
// oplysninger om baggrundsfarve
String bkColor = "white";

// indlæse filen fra det lokale drev
File f = new File("DeskewSampleImage.tif");

// læse indholdet af TIFF-billede til byte-array
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// oprette et objekt for at definere egenskaber for deskew image
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,null,null);

// Ret foto og returner output som streamobjekt
byte[] updatedImage = imageApi.createDeskewedImage(request);

// sti til at gemme opdateret TIFF-billede
Path path = Paths.get("/Users/nayyer/Documents/", "DeskewSampleImage_out.tif").toAbsolutePath();

// kald API'et for at rette billedet og gemme det på lokalt drev
Files.write(path, updatedImage);
skævt billede

Deskew foto forhåndsvisning

Eksempelet på TIFF-billedet brugt i ovenstående eksempel kan downloades fra DeskewSampleImage.tif.

Fjern skrå PDF ved hjælp af cURL-kommandoer

Vi modtager muligvis en PDF-fil, der indeholder skråstillede billeder, så en hurtig løsning er at udtrække billeder fra PDF-fil og derefter rette billederne. For nu at opfylde dette krav, vil vi bruge to Cloud API’er her, dvs. Aspose.PDF Cloud til at udtrække billeder fra PDF-fil og Aspose.Imaging Cloud til at rette billeder. Men før vi udfører nogen handling, skal vi først generere et JWT-adgangstoken (baseret på klientoplysninger) ved hjælp af følgende kommando.

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"

Når vi har JWT-tokenet, skal vi udtrække PDF-billeder ved hjælp af GrayscaleImage API fra Aspose.PDF Cloud. Billederne udtrækkes i TIFF-format og gemmes i skylager.

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

Nu hvor billeder er udtrukket fra PDF-fil som TIFF-format, nu skal vi kalde DeskewImage API fra Aspose.Imaging Cloud for at rette billedet. Da den resulterende fil returneres i svarstrøm, så vi kan gemme den på vores lokale drev.

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

Konklusion

På dette tidspunkt har vi lært nogle fantastiske og enkle trin til at fjerne skævheder i billedet såvel som i PDF ved hjælp af Java Cloud SDK. Så nu kan vi opfylde vores krav enten ved at bruge Java-kodestykke eller ved at bruge cURL-kommandoerne. Samtidig opfordrer vi dig til at udforske Produktdokumentation for at lære mere om andre spændende funktioner, der tilbydes af API.

Bemærk venligst, at alle vores Cloud SDK’er er udviklet under MIT-licens, så den komplette kildekode kan downloades fra GitHub. Til sidst, hvis du støder på problemer, mens du bruger API’en, kan du overveje at kontakte os for en hurtig løsning via gratis produktsupportforum.

relaterede artikler

Besøg venligst følgende links for at lære mere om: