TIFF ของ TIF เป็นตัวย่อของ Tag Image File Format และเป็นหนึ่งในภาพกราฟิกแรสเตอร์ยอดนิยม ซึ่งใช้กันอย่างแพร่หลายโดยศิลปินกราฟิก อุตสาหกรรมการพิมพ์ และช่างภาพ TIFF แตกต่างจาก JPEG, GIF และ PNG เนื่องจากเป็นรูปแบบ “ไม่บีบอัด” และสามารถเก็บข้อมูลภาพได้มากกว่ารูปแบบ JPEG ตอนนี้หนึ่งในคุณสมบัติเด่นของไฟล์ TIFF คือความสามารถในการเก็บภาพหลายภาพ (แต่ละภาพมีหลายช่อง) เป็นเฟรมต่อเนื่องในไทม์สแต็กหรือซีสแต็กของรูปภาพ ดังนั้นในบทความนี้ เราจะมาดูรายละเอียดเกี่ยวกับวิธีแยกเฟรมออกจากอิมเมจ TIFF แบบหลายเฟรมโดยใช้ Java Cloud SDK
API การประมวลผลภาพ TIFF
เราได้สร้าง API การประมวลผลภาพที่นำเสนอความสามารถในการแก้ไข จัดการ และแปลงแรสเตอร์ เมตาไฟล์ photoshop และ [รูปแบบที่รองรับ] อื่นๆ 6 เป็นรูปแบบไฟล์ที่หลากหลาย ตอนนี้พูดถึงการจัดการรูปภาพ TIFF แล้ว API มีความสามารถอย่างมากในการประมวลผลรูปภาพ TIFF ตามขอบเขตของบทความนี้ เราจะใช้ Aspose.Imaging Cloud SDK for Java ซึ่งเป็นตัวห่อหุ้มรอบ REST API ดังนั้น ขั้นตอนแรกในการใช้ความสามารถของมันคือการเพิ่มการอ้างอิงในโครงการ 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
วิธีแยกรูปภาพ 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 ตัวอย่างที่ใช้ในตัวอย่างด้านบนได้จาก DeskewSampleImage.tif
การประมวลผลภาพ TIFF โดยใช้คำสั่ง cURL
อีกวิธีที่สะดวกในการเข้าถึง REST APIs คือผ่านคำสั่ง 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 code snippet หรือผ่านคำสั่ง cURL อีกวิธีหนึ่งในการทดสอบคุณลักษณะที่น่าสนใจของ API คือผ่าน SwaggerUI และในกรณีที่คุณต้องการแก้ไขซอร์สโค้ดของ SDK คุณสามารถดาวน์โหลดได้จาก GitHub (Cloud SDK ของเราทั้งหมดได้รับการพัฒนาภายใต้ MIT ใบอนุญาต).
อย่างไรก็ตาม เอกสารประกอบผลิตภัณฑ์ เป็นแหล่งข้อมูลที่น่าทึ่งในการเรียนรู้เกี่ยวกับคุณสมบัติที่น่าตื่นเต้นอื่นๆ ที่นำเสนอโดย API สุดท้ายนี้ ในกรณีที่คุณพบปัญหาใดๆ ขณะใช้ API คุณอาจลองติดต่อเราเพื่อขอวิธีแก้ไขอย่างรวดเร็วโดยไม่เสียค่าใช้จ่าย ฟอรัมสนับสนุนผลิตภัณฑ์.
บทความที่เกี่ยวข้อง
โปรดไปที่ลิงก์ต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ: