מספר רב של תמונות רסטר שאנו מקבלים לעבודה ולשימוש אישי הן תמונות סרוקות באמצעות סורק דיגיטלי או עשויות להיות תמונה ממכשיר נייד. אז יש סיכויים סבירים שהטקסט בתמונה אינו מיושר כראוי ועובר על פני שולי העמוד אופקית או אנכית. במילים פשוטות, התמונות הסרוקות לרוב מוטות (הנייר הוזז/סובב) על הסורק. כעת על מנת לפתור בעיות מסוג זה, אנו בוחרים בטכניקה בשם deskewing שהיא תהליך שלפיו הסרת הטיה על ידי סיבוב תמונה באותה כמות כמו ההטיה שלה אך בכיוון ההפוך. תכונת Deskew שימושית ביותר בעיבוד תמונות אוטומטי, כאשר התמונות מגיעות מסורק.
כעת במאמר זה, אנו בוחנים את הפרטים כיצד לבטל את הטיית התמונה באמצעות Java Cloud SDK. אז פונקציית ההטייה פועלת בשני שלבים כלומר מזהה את זווית ההטיה של התמונה ואז מסובבת את התמונה כדי לתקן את ההטיה. אנו יכולים ליישם פעולה זו על פקסים שהתקבלו ובאמצעות המידע (טקסט) על התמונה, לחשב את זווית הסיבוב, לא את השוליים של הנייר ולמלא את הדרישה. עם זאת, אנו מבינים שניתן לבצע פעולת ביטול הטיה של תמונה בתמונות צבעוניות של 1 סיביות, 8 סיביות ו-24 סיביות.
Deskew Image API
על מנת לתמוך בתמונה יש לנו API מבוסס REST המציע את היכולות לתפעל קבצי תמונות בענן. כעת עבור יישומי Java, פיתחנו במיוחד Aspose.Imaging Cloud SDK עבור Java המאפשרת לך ליישם יכולות עיבוד תמונה באמצעות קוד Java. כעת על מנת לבטל תמונות באמצעות Java Cloud SDK, הצעד הראשון הוא להוסיף את ההתייחסות שלו בפרויקט java על ידי הכללת המידע הבא ב-pom.xml (פרויקט מסוג maven build).
<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 הדורש מערך Byte, פרמטר אופציונלי עבור צבע הרקע ואת השם של תמונת ה-deskew שנוצרה
- לבסוף, קרא לשיטה 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());
// צור אובייקט כדי להגדיר את מאפייני תמונת deskew
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());
// צור אובייקט כדי להגדיר מאפייני תמונת deskew
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 ולאחר מכן לבטל את ההטיה של התמונות. כעת על מנת למלא את הדרישה הזו, אנו הולכים להשתמש כאן בשני ממשקי API של Cloud, כלומר 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 או באמצעות פקודות cURL. יחד עם זאת, אנו מאוד ממליצים לך לחקור את תיעוד המוצר כדי ללמוד עוד על תכונות מרגשות אחרות שמציע ה-API.
שים לב שכל ערכות הענן שלנו מפותחות תחת רישיון MIT כך שניתן להוריד את קוד המקור המלא מ-GitHub. לבסוף, במקרה שאתה נתקל בבעיות כלשהן במהלך השימוש ב-API, תוכל לשקול לפנות אלינו לפתרון מהיר באמצעות פורום תמיכת מוצרים בחינם.
מאמרים קשורים
אנא בקר בקישורים הבאים כדי ללמוד עוד על: