Iskrivljena slika

Iskrivi sliku ili ispravi PDF pomoću Java Cloud SDK-a

Velik broj rasterskih slika koje primamo za rad i osobnu upotrebu skenirane su slike putem digitalnog skenera ili mogu biti slike s mobilnog uređaja. Dakle, postoji velika vjerojatnost da tekst unutar slike nije pravilno poravnat i prelazi preko ruba stranice bilo vodoravno ili okomito. Jednostavnim riječima, skenirane slike su često iskrivljene (papir je pomaknut/rotiran) na skeneru. Kako bismo riješili takve probleme, odlučujemo se za tehniku koja se zove iskrivljenje, što je proces u kojem se nakošenost uklanja rotiranjem slike za isti iznos kao i njezino nakošenje, ali u suprotnom smjeru. Značajka Deskew izuzetno je korisna u automatiziranoj obradi slike, kada slike dolaze sa skenera.

Sada u ovom članku proučavamo pojedinosti o tome kako ispraviti sliku pomoću Java Cloud SDK-a. Dakle, funkcija uklanjanja zakrivljenosti radi u dva koraka, tj. detektira kut zakrivljenosti slike i zatim rotira sliku kako bi ispravila zakrivljenost. Ovu operaciju možemo primijeniti na primljene faksove i pomoću informacija (teksta) na slici izračunati kut rotacije, a ne margine papira i ispuniti zahtjev. Unatoč tome, razumijemo da se operacija iskrivljenja slike može izvesti na 1-bitnim, 8-bitnim i 24-bitnim slikama u boji.

API za uklanjanje iskrivljenih slika

Kako bismo podržali slike, imamo API temeljen na REST-u koji nudi mogućnosti manipuliranja datotekama slika u oblaku. Za Java aplikacije posebno smo razvili Aspose.Imaging Cloud SDK for Java koji vam omogućuje implementaciju mogućnosti obrade slike putem Java koda. Da biste sada iskrivili slike pomoću Java cloud SDK-a, prvi korak je dodavanje njegove reference u java projekt uključivanjem sljedećih informacija u pom.xml (maven build type project).

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

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

Sljedeći korak je dobivanje vjerodajnica klijenta s Cloud Dashboard, a ako nemate račun na Aspose Cloud Dashboard, otvorite besplatni račun putem važeće adrese e-pošte. Sada se prijavite pomoću novostvorenog računa i potražite/izradite ID klijenta i tajnu klijenta na Aspose Cloud Dashboard.

Deskew Image Online pomoću Jave

Istražimo pojedinosti o tome kako ispraviti iskrivljenu sliku pomoću isječka Java koda. U ovom primjeru učitavamo TIFF sliku s lokalnog diska i primjenjujemo operaciju iskrivljenja fotografije. Rezultirajuća datoteka se zatim sprema u pohranu u oblaku.

  • Prvo, stvorite objekt ImagingApi na temelju personaliziranih vjerodajnica klijenta
  • Drugo, stvorite Booleovu varijablu koja pokazuje proporcionalnu promjenu veličine slike
  • Sada pročitajte sadržaj izvornog TIFF-a koristeći metodu readAllBytes(…) i prijeđite na polje byte[]
  • Sljedeći korak je stvaranje instance CreateDeskewedImageRequest koja zahtijeva niz bajtova, izborni parametar za boju pozadine i naziv rezultirajuće iskrivljene fotografije
  • Na kraju, pozovite metodu createDeskewedImage(…) da ispravite sliku. Rezultirajući TIFF pohranjuje se u pohranu u oblaku
// Dobijte ClientID i ClientSecret s https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// stvoriti Imaging object
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// postavite varijablu za proporcionalnu promjenu veličine iskrivljene slike
boolean resizeProportionally = true;
			
// informacije o boji pozadine
String bkColor = "white";

// učitati datoteku s lokalnog pogona
File f = new File("DeskewSampleImage.tiff");

// pročitati sadržaj TIFF slike u polje bajtova
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// stvoriti objekt za definiranje svojstava iskrivljene slike
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,"Resultant.tiff",null);

// Ispravite fotografiju i spremite izlaz u pohranu u oblaku
imageApi.createDeskewedImage(request);

Sada ako želite spremiti rezultirajući TIFF na lokalni/mrežni pogon, pokušajte upotrijebiti sljedeći isječak koda.

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

// stvoriti Imaging object
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// postavite varijablu za proporcionalnu promjenu veličine iskrivljene slike
boolean resizeProportionally = true;
			
// informacije o boji pozadine
String bkColor = "white";

// učitati datoteku s lokalnog pogona
File f = new File("DeskewSampleImage.tif");

// pročitati sadržaj TIFF slike u polje bajtova
byte[] inputStream = Files.readAllBytes(f.toPath());
					    
// stvoriti objekt za definiranje svojstava iskrivljene slike
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,null,null);

// Ispravite fotografiju i vratite izlaz kao objekt toka
byte[] updatedImage = imageApi.createDeskewedImage(request);

// put za pohranjivanje ažurirane TIFF slike
Path path = Paths.get("/Users/nayyer/Documents/", "DeskewSampleImage_out.tif").toAbsolutePath();

// pozovite API za iskrivljenje fotografije i spremanje na lokalni disk
Files.write(path, updatedImage);
iskrivljena slika

Iskrivljeni pregled fotografije

Uzorak TIFF slike korišten u gornjem primjeru može se preuzeti s DeskewSampleImage.tif.

Ispravite PDF pomoću cURL naredbi

Možemo primiti PDF datoteku koja sadrži iskrivljene slike, tako da je jedno brzo rješenje izdvajanje slika iz PDF datoteke, a zatim ispravljanje slika. Kako bismo ispunili ovaj zahtjev, ovdje ćemo upotrijebiti dva Cloud API-ja, tj. Aspose.PDF Cloud za izdvajanje slika iz PDF datoteke i Aspose.Imaging Cloud za uklanjanje iskrivljenih fotografija. Međutim, prije nego što izvedemo bilo koju operaciju, prvo moramo generirati JWT pristupni token (na temelju vjerodajnica klijenta) pomoću sljedeće naredbe.

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"

Jednom kada imamo JWT token, moramo izdvojiti PDF slike pomoću GrayscaleImage API-ja Aspose.PDF Clouda. Slike se ekstrahiraju u TIFF formatu i pohranjuju u pohranu u oblaku.

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

Sada kada su slike izvučene iz PDF datoteke kao TIFF format, sada moramo pozvati DeskewImage API Aspose.Imaging Clouda da ispravimo sliku. Budući da se rezultirajuća datoteka vraća u toku odgovora, možemo je spremiti na naš lokalni pogon.

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

Zaključak

Do sada smo naučili neke nevjerojatne i jednostavne korake za iskrivljenje slike, kao i za iskrivljenje PDF-a pomoću Java cloud SDK-a. Dakle, sada možemo ispuniti naše zahtjeve bilo korištenjem isječka Java koda ili korištenjem cURL naredbi. U isto vrijeme, preporučujemo vam da istražite Dokumentaciju proizvoda kako biste saznali više o drugim uzbudljivim značajkama koje nudi API.

Imajte na umu da su svi naši Cloud SDK-ovi razvijeni pod licencom MIT-a tako da se kompletan izvorni kod može preuzeti s GitHub. Na kraju, u slučaju da naiđete na bilo kakve probleme tijekom korištenja API-ja, razmislite o tome da nam se obratite za brzo rješenje putem besplatnog foruma za podršku proizvoda.

povezani članci

Posjetite sljedeće veze kako biste saznali više o: