รูปภาพแรสเตอร์จำนวนมากที่เราได้รับสำหรับการทำงานและการใช้งานส่วนตัวนั้นเป็นรูปภาพที่สแกนผ่านเครื่องสแกนดิจิทัลหรืออาจเป็นรูปภาพจากอุปกรณ์มือถือ ดังนั้นจึงมีโอกาสพอสมควรที่ข้อความภายในรูปภาพจะจัดแนวไม่ถูกต้องและวิ่งข้ามขอบกระดาษในแนวนอนหรือแนวตั้ง พูดง่ายๆ ก็คือ ภาพที่สแกนมักจะเอียง (กระดาษถูกย้าย/หมุน) บนเครื่องสแกน ตอนนี้เพื่อแก้ปัญหาดังกล่าว เราเลือกใช้เทคนิคที่ชื่อว่า การหักมุม ซึ่งเป็นกระบวนการที่ลบความเอียงออกโดยการหมุนรูปภาพในจำนวนที่เท่ากันกับการเอียงแต่ไปในทิศทางตรงกันข้าม คุณลักษณะ Deskew มีประโยชน์อย่างยิ่งในการประมวลผลภาพอัตโนมัติ เมื่อภาพมาจากสแกนเนอร์
ในบทความนี้ เรากำลังดูรายละเอียดเกี่ยวกับวิธีสร้างภาพ Deskew โดยใช้ Java Cloud SDK ดังนั้น ฟังก์ชันเดสก์นิวจึงทำงานในสองขั้นตอน นั่นคือ ตรวจจับมุมเอียงของภาพ จากนั้นจึงหมุนภาพเพื่อแก้ไขความเอียง เราสามารถใช้การดำเนินการนี้กับแฟกซ์ที่ได้รับและใช้ข้อมูล (ข้อความ) บนรูปภาพ คำนวณมุมของการหมุน ไม่ใช่ขอบกระดาษ และดำเนินการตามข้อกำหนด อย่างไรก็ตาม เราเข้าใจดีว่าการดำเนินการของภาพซ้อนสามารถดำเนินการกับภาพสี 1 บิต 8 บิต และ 24 บิตได้
API รูปภาพเดสกิว
เพื่อรองรับอิมเมจ เรามี API ที่ใช้ REST ซึ่งให้ความสามารถในการจัดการไฟล์อิมเมจในคลาวด์ ขณะนี้สำหรับแอปพลิเคชัน Java เราได้พัฒนาโดยเฉพาะ Aspose.Imaging Cloud SDK for Java ซึ่งช่วยให้คุณสามารถใช้ความสามารถในการประมวลผลภาพผ่านโค้ด Java ในตอนนี้ เพื่อสร้างภาพ Deskew โดยใช้ Java cloud SDK ขั้นตอนแรกคือการเพิ่มการอ้างอิงในโครงการ java โดยใส่ข้อมูลต่อไปนี้ใน pom.xml (โครงการประเภทการสร้าง maven)
<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>
ขั้นตอนต่อไปคือการรับข้อมูลประจำตัวไคลเอ็นต์จาก Cloud Dashboard และหากคุณไม่มีบัญชีผ่าน Aspose Cloud Dashboard โปรดสร้างบัญชีฟรีโดยใช้ที่อยู่อีเมลที่ถูกต้อง ตอนนี้เข้าสู่ระบบโดยใช้บัญชีที่สร้างขึ้นใหม่และค้นหา/สร้างรหัสลูกค้าและรหัสลับลูกค้าที่ Aspose Cloud Dashboard
Deskew Image Online โดยใช้ Java
เรามาสำรวจรายละเอียดเกี่ยวกับวิธีการสร้างภาพซ้อนภาพโดยใช้ข้อมูลโค้ด Java สำหรับตัวอย่างนี้ เรากำลังโหลดรูปภาพ TIFF จากไดรฟ์ในเครื่องและใช้การดำเนินการกับรูปภาพเดสก์ ไฟล์ผลลัพธ์จะถูกบันทึกลงในที่เก็บข้อมูลบนคลาวด์
- ประการแรก สร้างวัตถุของ ImagingApi ตามข้อมูลรับรองลูกค้าส่วนบุคคล
- ประการที่สอง สร้างตัวแปรบูลีนซึ่งระบุให้ปรับขนาดภาพตามสัดส่วน
- ตอนนี้อ่านเนื้อหาของ TIFF ต้นทางโดยใช้เมธอด readAllBytes(…) และส่งผ่านไปยังอาร์เรย์ byte[]
- ขั้นตอนต่อไปคือการสร้างอินสแตนซ์ของ CreateDeskewedImageRequest ซึ่งต้องใช้อาร์เรย์แบบไบต์ พารามิเตอร์ทางเลือกสำหรับสีพื้นหลัง และชื่อของภาพถ่ายเดสก์บิวที่เป็นผลลัพธ์
- สุดท้าย เรียกใช้เมธอด createDeskewedImage(…) เพื่อเลื่อนภาพ TIFF ผลลัพธ์จะถูกเก็บไว้ในที่เก็บข้อมูลบนคลาวด์
// รับ ClientID และ ClientSecret จาก https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// สร้างวัตถุภาพ
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
// ตั้งค่าตัวแปรเพื่อปรับขนาดภาพที่ถูกลบออกตามสัดส่วน
boolean resizeProportionally = true;
// ข้อมูลสีพื้นหลัง
String bkColor = "white";
// โหลดไฟล์จากไดรฟ์ในเครื่อง
File f = new File("DeskewSampleImage.tiff");
// อ่านเนื้อหาของภาพ TIFF เป็นไบต์อาร์เรย์
byte[] inputStream = Files.readAllBytes(f.toPath());
// สร้างวัตถุเพื่อกำหนดคุณสมบัติของภาพเดสก์
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,"Resultant.tiff",null);
// เลื่อนภาพและบันทึกผลลัพธ์ในที่เก็บข้อมูลบนคลาวด์
imageApi.createDeskewedImage(request);
ตอนนี้ ถ้าคุณต้องการบันทึกผลลัพธ์ TIFF บนไดรฟ์ในเครื่อง/เครือข่าย โปรดลองใช้ข้อมูลโค้ดต่อไปนี้
// รับ ClientID และ ClientSecret จาก https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";
// สร้างวัตถุภาพ
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);
// ตั้งค่าตัวแปรเพื่อปรับขนาดภาพที่ถูกลบออกตามสัดส่วน
boolean resizeProportionally = true;
// ข้อมูลสีพื้นหลัง
String bkColor = "white";
// โหลดไฟล์จากไดรฟ์ในเครื่อง
File f = new File("DeskewSampleImage.tif");
// อ่านเนื้อหาของภาพ TIFF เป็นไบต์อาร์เรย์
byte[] inputStream = Files.readAllBytes(f.toPath());
// สร้างวัตถุเพื่อกำหนดคุณสมบัติของภาพเดสก์
CreateDeskewedImageRequest request = new CreateDeskewedImageRequest(inputStream,resizeProportionally,bkColor,null,null);
// ภาพเดสกิวและส่งคืนเอาต์พุตเป็นวัตถุสตรีม
byte[] updatedImage = imageApi.createDeskewedImage(request);
// พาธเพื่อเก็บภาพ TIFF ที่อัปเดตแล้ว
Path path = Paths.get("/Users/nayyer/Documents/", "DeskewSampleImage_out.tif").toAbsolutePath();
// เรียก API เพื่อเลื่อนภาพและบันทึกลงในไดรฟ์ในเครื่อง
Files.write(path, updatedImage);
สามารถดาวน์โหลดรูปภาพตัวอย่าง TIFF ที่ใช้ในตัวอย่างด้านบนได้จาก DeskewSampleImage.tif
เดือย PDF โดยใช้คำสั่ง cURL
เราอาจได้รับไฟล์ PDF ที่มีรูปภาพที่เลื่อนออก ดังนั้นวิธีแก้ไขอย่างรวดเร็ววิธีหนึ่งคือการแยกรูปภาพออกจากไฟล์ PDF แล้วลบรูปภาพที่เลื่อนออก เพื่อให้เป็นไปตามข้อกำหนดนี้ เราจะใช้ Cloud API สองตัวที่นี่ ได้แก่ Aspose.PDF Cloud เพื่อแยกรูปภาพจากไฟล์ PDF และ Aspose.Imaging Cloud เพื่อแยกรูปภาพ อย่างไรก็ตาม ก่อนที่เราจะดำเนินการใดๆ อันดับแรก เราต้องสร้างโทเค็นการเข้าถึง JWT (ตามข้อมูลประจำตัวของไคลเอ็นต์) ก่อนโดยใช้คำสั่งต่อไปนี้
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"
เมื่อเรามีโทเค็น JWT แล้ว เราต้องแยกอิมเมจ PDF โดยใช้ GrayscaleImage API ของ Aspose.PDF Cloud รูปภาพถูกแยกในรูปแบบ TIFF และจัดเก็บไว้ในที่เก็บข้อมูลบนคลาวด์
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>"
ตอนนี้รูปภาพถูกแยกออกจากไฟล์ PDF เป็นรูปแบบ TIFF แล้ว ตอนนี้เราต้องเรียก DeskewImage API ของ Aspose.Imaging Cloud เพื่อเรียกใช้รูปภาพเดสก์ เนื่องจากไฟล์ผลลัพธ์ถูกส่งกลับในสตรีมการตอบสนอง เราจึงสามารถบันทึกไฟล์นั้นลงในไดรฟ์ในเครื่องของเราได้
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
บทสรุป
ถึงตอนนี้ เราได้เรียนรู้ขั้นตอนที่น่าอัศจรรย์และง่ายๆ บางอย่างในการเลื่อนภาพและ PDF แบบเลื่อนโดยใช้ Java cloud SDK ตอนนี้เราสามารถบรรลุความต้องการของเราได้โดยใช้ Java code snippet หรือใช้ cURL commnds ในเวลาเดียวกัน เราขอแนะนำให้คุณสำรวจ เอกสารประกอบผลิตภัณฑ์ เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติที่น่าตื่นเต้นอื่นๆ ที่นำเสนอโดย API
โปรดทราบว่า Cloud SDK ทั้งหมดของเราได้รับการพัฒนาภายใต้ใบอนุญาต MIT ดังนั้นซอร์สโค้ดที่สมบูรณ์จึงสามารถดาวน์โหลดได้จาก GitHub สุดท้ายนี้ ในกรณีที่คุณพบปัญหาใดๆ ในขณะใช้ API คุณอาจลองติดต่อหาเราเพื่อขอวิธีแก้ไขปัญหาอย่างรวดเร็วผ่าน ฟอรัมสนับสนุนผลิตภัณฑ์ ฟรี
บทความที่เกี่ยวข้อง
โปรดไปที่ลิงก์ต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ: