Định dạng tệp hình ảnh thẻ, viết tắt là TIFF hoặc TIF, là một định dạng tệp máy tính để lưu trữ hình ảnh đồ họa raster, phổ biến trong giới họa sĩ đồ họa, ngành xuất bản và nhiếp ảnh gia. TIFF khác với JPEG, GIF và PNG vì đây là định dạng “không nén”. Các tệp TIFF có khả năng lưu trữ nhiều hình ảnh, mỗi hình ảnh có nhiều kênh. Thông thường, nhiều hình ảnh này biểu diễn các khung tuần tự trong một chồng thời gian hoặc chồng z của hình ảnh, do đó mỗi hình ảnh này có cùng kích thước.
Các tùy chọn khác mà chúng ta có trong TIFF là các lớp và các trang mà lớp có thể được so sánh với độ trong suốt mà các hiệu ứng hình ảnh hoặc hình ảnh được áp dụng và đặt lên trên hoặc dưới một hình ảnh. Như được hiển thị trong hình ảnh bên dưới, hình ảnh đang hiển thị nhiều lớp mà nó có. Trong bài viết này, chúng ta sẽ thảo luận về các bước về cách trích xuất khung hình từ hình ảnh TIFF nhiều khung hình bằng cách sử dụng Aspose.Imaging Cloud SDK cho .NET.
Cài đặt SDK
Aspose.Imaging Cloud SDK for .NET là một SDK lập trình được phát triển trên nền tảng Aspose.Imaging Cloud API và cung cấp mọi khả năng xử lý hình ảnh cho các nhà phát triển .NET. Vì vậy, bước đầu tiên là cài đặt SDK có thể tải xuống tại NuGet và GitHub. Thực hiện lệnh sau để cài đặt SDK từ thư viện NuGet.
Install-Package Aspose.Imaging-Cloud
Hoặc thay thế, bạn có thể thêm gói bằng trình quản lý gói NuGet trong Visual Studio như được hiển thị bên dưới. Bạn có thể cân nhắc truy cập liên kết sau để biết thêm chi tiết về Cách cài đặt Aspose.Cloud SDK.
Bây giờ để sử dụng SDK, bước tiếp theo là lấy thông tin chi tiết ClientID và ClientSecret được cá nhân hóa của bạn. Do đó, bước đầu tiên là tạo tài khoản bằng cách truy cập Bảng điều khiển Aspose.Cloud. Nếu bạn có tài khoản GitHub hoặc Google, chỉ cần Đăng ký. Nếu không, hãy nhấp vào nút Tạo tài khoản mới và cung cấp thông tin bắt buộc. Bây giờ hãy đăng nhập vào bảng điều khiển bằng thông tin xác thực và mở rộng phần Ứng dụng từ bảng điều khiển và cuộn xuống phần Thông tin xác thực của khách hàng để xem thông tin chi tiết về Client ID và Client Secret.
Trích xuất khung TIFF bằng lệnh cURL
Đầu tiên, chúng ta sẽ thảo luận về việc trích xuất khung TIFF bằng lệnh cURL vì chúng là một trong những cách thuận tiện để truy cập REST API trên bất kỳ nền tảng nào. Bất kể nền tảng và sự phức tạp về kiến trúc cơ bản. Vì vậy, để sử dụng lệnh cURL, bước đầu tiên là tạo JSON Web Token (JWT) dựa trên thông tin chi tiết ClientID và ClientSecret của bạn được lấy từ bảng điều khiển Aspose.Cloud. Vui lòng thực hiện lệnh sau trong terminal để tạo mã thông báo JWT
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=718e4235-8866-4ebe-bff4-f5a14a4b6466&client_secret=388e864b819d8b067a8b1cb625a2ea8e" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
Trước khi tiếp tục, vui lòng lưu ý rằng khung có thể được trích xuất bằng một trong hai API sau:
API đầu tiên yêu cầu bạn tải hình ảnh lên Cloud Storage trước rồi truyền tên của hình ảnh đó vào URL API. Sau khi cập nhật các tham số hình ảnh, API trả về hình ảnh đã cập nhật trong phản hồi.
Mặt khác, với API thứ hai, bạn có thể trực tiếp truyền hình ảnh vào phần thân yêu cầu. Nó cũng cho phép bạn lưu hình ảnh đã cập nhật trên Cloud Storage bằng cách chỉ định giá trị tham số outPath. Tuy nhiên, nếu bạn không chỉ định giá trị, phản hồi sẽ chứa hình ảnh được truyền phát.
Bây giờ hãy sử dụng lệnh sau để trích xuất khung hình thứ 4 từ hình ảnh TiffSampleImage.tiff đã được tải lên bộ nhớ đám mây.
curl -v -X GET "https://api.aspose.cloud/v3.0/imaging/TiffSampleImage.tiff/frames/4?saveOtherFrames=true" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-o myresultant.tiff
Cách trích xuất khung TIFF trong C#
Trong phần này, chúng ta sẽ trích xuất khung TIFF bằng C# .NET. Vui lòng làm theo các bước dưới đây
- Bước đầu tiên là tạo một đối tượng của ImagingApi trong khi cung cấp ClientID và ClientSecret làm đối số
- Tạo một đối tượng chuỗi xác định hình ảnh TIFF đầu vào
- Để chỉ định khung hình cần trích xuất, hãy tạo một số nguyên
- Tạo các đối tượng số nguyên để chỉ định kích thước của khung được trích xuất
- Bước tiếp theo là tạo một đối tượng GetImageFrameRequest lấy tên TIFF đầu vào, frameID và các tham số khác liên quan đến kích thước khung được trích xuất làm đối số
- Cuối cùng, gọi phương thức GetImageFrame(..) của ImagingApi lấy đối tượng GetImageFrameRequest làm tham số đầu vào
- Cuối cùng, lưu đầu ra để tải ổ đĩa
string clientID = "718e4235-8866-4ebe-bff4-f5a14a4b6466"; // Get ClientID from https://dashboard.aspose.cloud/
string clientSecret = "388e864b819d8b067a8b1cb625a2ea8e"; // Get CLientSecret from https://dashboard.aspose.cloud/
// tạo một phiên bản của ImagingApi
Aspose.Imaging.Cloud.Sdk.Api.ImagingApi imagingApi = new ImagingApi(clientSecret, clientID,"https://api.aspose.cloud/","v3.0",false);
// đầu vào hình ảnh TIFF có sẵn trên lưu trữ đám mây
String fileName = "TiffSampleImage.tiff";
int? frameId = 5; // Index of a frame
int? newWidth = 300;
int? newHeight = 450;
int? x = 10;
int? y = 10;
int? rectWidth = 200;
int? rectHeight = 300;
string rotateFlipMethod = "RotateNoneFlipNone";
// Kết quả sẽ chỉ bao gồm khung được chỉ định
bool? saveOtherFrames = false;
string folder = null; // Input file is saved at the root of the storage
string storage = null; // We are using default Cloud Storage
GetImageFrameRequest getImageFrameRequest = new GetImageFrameRequest(fileName, frameId, newWidth, newHeight,
x, y, rectWidth, rectHeight, rotateFlipMethod, saveOtherFrames, folder, storage);
Stream imageFrame = imagingApi.GetImageFrame(getImageFrameRequest);
// Lưu hình ảnh đã cập nhật vào bộ nhớ cục bộ
using (var fileStream = File.Create("/Users/nayyershahbaz/Downloads/MyResultant.tiff"))
{
imageFrame.Seek(0, SeekOrigin.Begin);
imageFrame.CopyTo(fileStream);
}
Xin lưu ý rằng thuộc tính rotateFlipMethod có thể có một trong các giá trị sau
Phương thức RotateFlip (Rotate180FlipNone, Rotate180FlipX, Rotate180FlipXY, Rotate180FlipY, Rotate270FlipNone, Rotate270FlipX, Rotate270FlipXY, Rotate270FlipY, Rotate90FlipNone, Rotate90FlipX, Rotate90FlipXY, Rotate90FlipY, RotateNoneFlipNone, RotateNoneFlipX, RotateNoneFlipXY, RotateNoneFlipY).Mặc định là RotateNoneFlipNone.
Phần kết luận
Việc trích xuất khung TIFF từ TIFF nhiều khung đã được giải thích trong bài viết trên. Ngoài việc trích xuất khung, API cho phép bạn thay đổi kích thước khung TIFF, Lấy thuộc tính khung TIFF, Cắt khung TIFF, Xoay lật khung TIFF, v.v. Trong trường hợp bạn gặp bất kỳ sự cố nào khi sử dụng API, vui lòng liên hệ với chúng tôi qua diễn đàn hỗ trợ miễn phí.
Chúng tôi cũng đề nghị bạn truy cập vào các liên kết sau để biết thêm thông tin về