כיצד לחלץ תמונת tiff

כיצד לחלץ תמונות מקבצי TIFF

TIFF של TIF הוא קיצור של Tag Image File Format והוא בין תמונות הגרפיקה הרסטר הפופולריות, בשימוש נרחב על ידי גרפיקאים, תעשיית ההוצאה לאור וצלמים. ה-TIFF שונה מ-JPEG, GIF ו-PNG מכיוון שהוא פורמט “לא דחוס” ויכול לאחסן הרבה יותר נתוני תמונה מאשר עמיתיהם ב-JPEG. כעת, אחת התכונות הבולטות של קבצי TIFF היא היכולת שלו לאחסן מספר תמונות (לכל אחת יש מספר ערוצים) כפריימים עוקבים בערימת זמן או z-stack של תמונות. אז במאמר זה, אנו הולכים לחקור את הפרטים כיצד לחלץ מסגרות מתמונות TIFF מרובות מסגרות באמצעות Java Cloud SDK.

TIFF Image Processing API

יצרנו ממשק API לעיבוד תמונה המציע את היכולות לערוך, לתפעל ולשנות רסטר, מטא-קבצים, פוטושופ ועוד פורמטים נתמכים למגוון פורמטים של קבצים. אם כבר מדברים על מניפולציה של תמונות TIFF, ה-API מסוגל מאוד לעבד תמונות TIFF. אז לפי היקף המאמר הזה, אנחנו הולכים להשתמש ב-Aspose.Imaging Cloud SDK עבור Java שהוא מעטפת סביב REST API. אז הצעד הראשון בניצול היכולות שלו הוא להוסיף את ההתייחסות שלו בפרויקט 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.

כיצד לחלץ תמונת TIFF ב-Java

הבה נחקור את הפרטים כיצד לחלץ תמונות מקובצי tiff באמצעות קטע קוד Java. שים לב שה-API גם מאפשר לך לשנות גודל, לחתוך ולסובב להפוך את המסגרת שחולצה. יתר על כן, אחד מהפרמטרים הבוליאניים saveOtherFrames מאפשר לך לציין אם התוצאה תכלול את כל שאר המסגרות או רק מסגרת מוגדרת.

  • ראשית, צור אובייקט של ImagingApi המבוסס על אישורי לקוח מותאמים אישית
  • שנית, קרא את התוכן של תמונת ה-TIFF הראשונה באמצעות שיטת readAllBytes(…) ועבור למערך byte[]
  • שלישית, צור מופע של מחלקה UploadFileRequest שבו אנו מציינים את השם של TIFF מעל אחסון בענן
  • כעת העלה תמונת TIFF ראשונה לאחסון בענן באמצעות שיטת uploadFile(…).
  • השלב הבא הוא לציין את אינדקס מסגרת TIFF, גובה ורוחב של מסגרת שחולצה, מקור החילוץ ולציין אם אתה רוצה את המסגרת שחולצה במלאך מסוים
  • כעת צור אובייקט של GetImageFrameRequest שבו אנו מציינים תמונת TIFF קלט ומעל מאפיינים מוגדרים
  • קרא לשיטת getImageFrame(…) של ImagingAPI כדי לקבל מסגרת TIFF
  • שמור את המסגרת שחולצה לכונן מקומי באמצעות אובייקט FileOutputStream
// קבל ClientID ו-ClientSecret מ-https://dashboard.aspose.cloud/
String clientId = "7ef10407-c1b7-43bd-9603-5ea9c6db83cd";
String clientSecret = "ba7cc4dc0c0478d7b508dd8ffa029845";

// ליצור אובייקט הדמיה
ImagingApi imageApi = new ImagingApi(clientSecret, clientId);

// טען תמונת TIFF ראשונה מהמערכת המקומית
File file1 = new File("DeskewSampleImage.tif");
byte[] imageStream = Files.readAllBytes(file1.toPath());
			
// צור אובייקט בקשה להעלאת קובץ
UploadFileRequest uploadRequest = new UploadFileRequest("input.tiff",imageStream,null);
// העלה תמונת TIFF ראשונה לאחסון בענן
imageApi.uploadFile(uploadRequest);

Integer frameId = 0; // Frame number inside TIFF
// רוחב וגובה חדשים של המסגרת שחולצה
Integer newWidth = 1000;
Integer newHeight = 1400;

// מקור כדי להתחיל חילוץ מסגרת
Integer x = 10;
Integer y = 10;

// אזור מלבני לחלץ מסגרת
Integer rectWidth = 900;
Integer rectHeight = 800;

// ציין את זווית הסיבוב עבור מסגרת TIFF שחולצה
String rotateFlipMethod = "Rotate90FlipY";
// התוצאה לכלול רק את המסגרת שצוינה ולא מסגרות אחרות
Boolean saveOtherFrames = false;

// צור אובייקט בקשה לחילוץ מסגרות TIFF בהתבסס על פרטים שצוינו
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    x, y, rectWidth, rectHeight, null, saveOtherFrames, null, null);

// המסגרת שחולצה מוחזרת בזרם התגובה
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);

// שמור את מסגרת TIFF שחולצה באחסון מקומי
FileOutputStream fos = new FileOutputStream("/Users/s4/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
לחלץ מסגרת tiff

קבל תצוגה מקדימה של מסגרות TIFF

ניתן להוריד את תמונות ה-TIFF לדוגמה המשמשות בדוגמה לעיל מ-DeskewSampleImage.tif.

עיבוד תמונה TIFF באמצעות פקודות cURL

דרך נוחה נוספת לגשת לממשקי REST API היא באמצעות פקודות cURL. מאז Aspose.Imaging Cloud מבוסס על ארכיטקטורת REST, אז אנחנו יכולים גם לחלץ מסגרות של תמונות tiff באמצעות פקודות cURL. כעת, הדרישה המוקדמת של פעילות זו היא ליצור אסימון גישה ל-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, עלינו לבצע את הפקודה הבאה כדי לחלץ מסגרת של תמונות TIFF.

curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/first.tiff/frames/0?newWidth=1000&newHeight=1200&x=10&y=10&rectWidth=800&rectHeight=800&saveOtherFrames=false" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o ExtractedFrame.tiff

סיכום

בשלב זה, למדנו את כל הפרטים הדרושים כיצד לחלץ תמונות מקבצי tiff. בדקנו את האפשרות לחלץ מסגרת TIFF באמצעות קטע קוד Java Java או באמצעות פקודות cURL. גישה נוספת לבדיקת התכונות המבטיחות של API היא באמצעות SwaggerUI ובמקרה שתרצה לשנות את קוד המקור של SDK, תוכל להוריד אם מ-GitHub (כל ערכי הענן שלנו מפותחים תחת MIT רישיון).

עם זאת, תיעוד המוצר הוא מקור מדהים למידע כדי ללמוד על תכונות מרגשות אחרות המוצעות על ידי ה-API. פורום תמיכת מוצרים.

מאמרים קשורים

אנא בקר בקישורים הבאים כדי ללמוד עוד על: