ปรับขนาดรูปภาพ

ปรับขนาดรูปภาพ TIFF โดยใช้ Java

คุณสมบัติเด่นอย่างหนึ่งของไฟล์ TIFF คือความสามารถในการเก็บภาพหลายภาพ (แต่ละภาพมีหลายช่อง) เป็นเฟรมต่อเนื่องในไทม์สแต็กหรือซีสแต็กของรูปภาพ ในบทความนี้ เราจะอธิบายขั้นตอนในการแยกเฟรม TIFF ปรับขนาดและบันทึกแยกต่างหากในที่เก็บข้อมูล การดำเนินการปรับขนาดรูปภาพออนไลน์รองรับขนาดใหม่ (ความกว้าง & ความสูง) ในขณะที่บันทึกเฟรม TIFF ที่อัปเดต

ปรับขนาดภาพ API

Aspose.Imaging Cloud SDK สำหรับ Java เป็นโซลูชันที่ใช้ REST ซึ่งช่วยให้คุณสามารถแก้ไข จัดการ และแปลงภาพแรสเตอร์ Metafile และ Photoshop ให้เป็น รูปแบบที่รองรับ ได้หลากหลายทางโปรแกรม นอกจากนี้ยังมีคุณสมบัติในการจัดการภาพ TIFF ซึ่งเรายังสามารถทำงานกับเฟรม TIFF แต่ละเฟรมได้อีกด้วย ตอนนี้ เพื่อเริ่มต้นใช้งาน 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 โปรดสร้างบัญชีฟรีโดยใช้ที่อยู่อีเมลที่ถูกต้อง

ปรับขนาดรูปภาพออนไลน์ใน Java

ในส่วนนี้ เราจะใช้ GetImageFrame API เพื่อพัฒนาตัวปรับขนาดรูปภาพ TIFF นอกจากนี้ เราจะอัปโหลดรูปภาพไปยังที่เก็บข้อมูลบนคลาวด์ และหลังจากอัปเดตพารามิเตอร์รูปภาพแล้ว รูปภาพที่แก้ไขจะถูกส่งกลับในสตรีมตอบกลับ โปรดทราบว่า API ช่วยให้คุณสามารถปรับขนาดรูปภาพจำนวนมากหรือปรับขนาดเฉพาะเฟรม TIFF เฉพาะโดยใช้พารามิเตอร์ saveOtherFrames

  • ประการแรก สร้างวัตถุของ ImagingApi โดยใช้ข้อมูลประจำตัวไคลเอนต์ส่วนบุคคล
  • ประการที่สอง อ่านเนื้อหาของอิมเมจ TIFF แรกโดยใช้เมธอด readAllBytes(…) และส่งคืนไปยังอาร์เรย์ byte[]
  • ประการที่สาม สร้างอินสแตนซ์ของคลาส UploadFileRequest ที่เราส่งชื่อภาพ TIFF
  • ตอนนี้อัปโหลดภาพ TIFF ภาพแรกไปยังที่เก็บข้อมูลบนคลาวด์โดยใช้เมธอด uploadFile(…)
  • ขั้นตอนต่อไปคือการระบุดัชนีเฟรม TIFF ขนาดความสูง & ความกว้างใหม่ และดัชนีเฟรม 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("TiffSampleImage.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 = 400;
Integer newHeight = 600;

// ผลลัพธ์จะรวมเฉพาะเฟรมที่ระบุเท่านั้น ไม่ใช่เฟรมอื่น
Boolean saveOtherFrames = false;

// สร้างวัตถุคำขอเพื่อแยกเฟรม tiff ตามรายละเอียดที่ระบุ
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest("input.tiff", frameId, newWidth, newHeight,
                    null, null, null, null, null, saveOtherFrames, null, null);

// เฟรมที่แตกออกมาจะถูกส่งกลับในกระแสตอบรับ
byte[] updatedImage = imageApi.getImageFrame(getImageFrameRequest);

// บันทึกเฟรม TIFF ที่แยกออกมาในที่จัดเก็บในตัวเครื่อง
FileOutputStream fos = new FileOutputStream("/Users/nayyer/Documents/" + "Extracted-TIFF.tiff");
fos.write(updatedImage);
fos.close();
ปรับขนาดเฟรม tiff

ปรับขนาดการแสดงตัวอย่างเฟรม TIFF

สามารถดาวน์โหลดรูปภาพ TIFF ตัวอย่างที่ใช้ในตัวอย่างด้านบนได้จาก TiffSampleImage.tiff

ลดขนาดรูปภาพโดยใช้คำสั่ง cURL

เนื่องจากสถาปัตยกรรม REST ของ API จึงสามารถเข้าถึงได้ผ่านคำสั่ง cURL ดังนั้นในส่วนนี้ เราจะพูดถึงรายละเอียดเกี่ยวกับวิธีลดขนาดรูปภาพหรือแยกเฟรม 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/input.tiff/frames/0?newWidth=400&newHeight=600&saveOtherFrames=false" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"
-o ResizedFrame.tiff

บทสรุป

บทความนี้ให้รายละเอียดง่ายๆ แต่น่าทึ่งเกี่ยวกับวิธีปรับขนาดรูปภาพ (TIFF) โดยใช้ Java บทช่วยสอนนี้ยังอธิบายขั้นตอนทั้งหมดในการปรับขนาดเฟรม TIFF โดยใช้คำสั่ง cURL โปรดทราบว่าตัวเลือกอื่นในการทดสอบความสามารถของ API คือผ่าน SwaggerUI ภายในเว็บเบราว์เซอร์ นอกจากนี้ หากคุณสนใจที่จะแก้ไขซอร์สโค้ดของ SDK ก็สามารถดาวน์โหลดได้จาก GitHub เนื่องจากเผยแพร่ภายใต้ใบอนุญาต MIT

อย่างไรก็ตาม เอกสารคู่มือผลิตภัณฑ์ เป็นแหล่งข้อมูลที่น่าทึ่งในการเรียนรู้รายละเอียดที่จำเป็นทั้งหมดเกี่ยวกับคุณสมบัติที่น่าตื่นเต้นอื่นๆ ของ API ประการสุดท้าย ในกรณีที่คุณพบปัญหาขณะใช้ API คุณอาจลองติดต่อหาเราเพื่อขอวิธีแก้ไขปัญหาอย่างรวดเร็วผ่าน [ฟอรัมสนับสนุนผลิตภัณฑ์] ฟรี 9

บทความที่เกี่ยวข้อง

โปรดไปที่ลิงก์ต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ: