TIFF 프레임 추출

태그 이미지 파일 형식(Tag Image File Format)은 TIFF 또는 TIF로 약칭되며, 그래픽 아티스트, 출판 업계 및 사진 작가들에게 인기 있는 래스터 그래픽 이미지를 저장하기 위한 컴퓨터 파일 형식입니다. TIFF는 “압축되지 않은” 형식이기 때문에 JPEG, GIFPNG와 다릅니다. TIFF 파일은 여러 채널을 갖는 여러 이미지를 저장할 수 있습니다. 일반적으로 이러한 여러 이미지는 시간 스택 또는 z 스택 이미지의 연속적인 프레임을 나타내므로 이러한 각 이미지는 동일한 차원을 갖습니다.

TIFF에서 얻을 수 있는 다른 옵션은 레이어와 페이지인데, 레이어를 투명도와 비교하여 이미지 효과나 이미지를 적용하고 이미지 위나 아래에 배치할 수 있습니다. 아래 이미지에서 볼 수 있듯이 이미지는 여러 레이어를 보여줍니다. 이 문서에서는 Aspose.Imaging Cloud SDK for .NET을 사용하여 다중 프레임 TIFF 이미지에서 프레임을 추출하는 방법에 대한 단계를 설명합니다.

프레임이 있는 TIFF 이미지

SDK 설치

Aspose.Imaging Cloud SDK for .NET은 Aspose.Imaging Cloud API를 기반으로 개발된 프로그래밍 SDK로, .NET 개발자에게 모든 이미지 조작 기능을 제공합니다. 따라서 첫 번째 단계는 NuGetGitHub에서 다운로드할 수 있는 SDK를 설치하는 것입니다. 다음 명령을 실행하여 NuGet 라이브러리에서 SDK를 설치합니다.

Install-Package Aspose.Imaging-Cloud

또는 대안으로 아래에 표시된 대로 Visual Studio에서 NuGet 패키지 관리자를 사용하여 패키지를 추가할 수 있습니다. Aspose.Cloud SDK 설치 방법에 대한 자세한 내용은 다음 링크를 방문하는 것을 고려할 수 있습니다.

Aspose.Imaging 클라우드 SDK

이제 SDK를 사용하기 위해 다음 단계는 개인화된 ClientID와 ClientSecret 세부 정보를 얻는 것입니다. 따라서 첫 번째 단계는 Aspose.Cloud 대시보드를 방문하여 계정을 만드는 것입니다. GitHub 또는 Google 계정이 있는 경우 간단히 가입하세요. 그렇지 않은 경우 새 계정 만들기 버튼을 클릭하고 필요한 정보를 제공하세요. 이제 자격 증명을 사용하여 대시보드에 로그인하고 대시보드에서 애플리케이션 섹션을 확장하고 클라이언트 자격 증명 섹션으로 스크롤하여 클라이언트 ID와 클라이언트 비밀 세부 정보를 확인하세요.

ClientID 및 ClientSecret 미리보기

cURL 명령을 사용하여 TIFF 프레임 추출

먼저, cURL 명령을 사용하여 TIFF 프레임을 추출하는 것에 대해 논의해 보겠습니다. 이는 모든 플랫폼에서 REST API에 액세스하는 편리한 방법 중 하나이기 때문입니다. 플랫폼과 기본 아키텍처 복잡성에 관계없이 말입니다. 따라서 cURL 명령을 사용하려면 첫 번째 단계는 Aspose.Cloud 대시보드에서 검색한 ClientID와 ClientSecret 세부 정보를 기반으로 JSON 웹 토큰(JWT)을 생성하는 것입니다. 터미널에서 다음 명령을 실행하여 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"

계속 진행하기 전에 다음 두 API 중 하나를 사용하여 프레임을 추출할 수 있습니다.

첫 번째 API는 먼저 Cloud Storage에 이미지를 업로드한 다음 API URL에 이름을 전달하도록 기대합니다. 이미지 매개변수를 업데이트한 후 API는 응답에서 업데이트된 이미지를 반환합니다.

반면, 두 번째 API를 사용하면 요청 본문에서 이미지를 직접 전달할 수 있습니다. 또한 outPath 매개변수 값을 지정하여 업데이트된 이미지를 Cloud Storage에 저장할 수도 있습니다. 그러나 값을 지정하지 않으면 응답에 스트리밍된 이미지가 포함됩니다.

이제 다음 명령을 사용하여 클라우드 저장소에 이미 업로드된 TiffSampleImage.tiff 이미지에서 4번째 프레임을 추출합니다.

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#에서 TIFF 프레임을 추출하는 방법

이 섹션에서는 C# .NET을 사용하여 TIFF 프레임을 추출합니다. 아래에 제공된 단계를 따르세요.

  • 첫 번째 단계는 ClientID와 ClientSecret을 인수로 제공하면서 ImagingApi 객체를 만드는 것입니다.
  • 입력 TIFF 이미지를 정의하는 문자열 객체를 만듭니다.
  • 추출할 프레임을 지정하려면 정수를 생성하세요.
  • 추출된 프레임의 크기를 지정하기 위해 정수 객체를 생성합니다.
  • 다음 단계는 추출된 프레임 크기와 관련된 입력 TIFF 이름, 프레임 ID 및 기타 매개변수를 인수로 사용하는 개체 GetImageFrameRequest를 만드는 것입니다.
  • 마지막으로 GetImageFrameRequest 객체를 입력 인수로 사용하는 ImagingApi의 GetImageFrame(..) 메서드를 호출합니다.
  • 마지막으로 드라이브를 로드하기 위해 출력을 저장합니다.
string clientID = "718e4235-8866-4ebe-bff4-f5a14a4b6466"; // Get ClientID from https://dashboard.aspose.cloud/
string clientSecret = "388e864b819d8b067a8b1cb625a2ea8e"; // Get CLientSecret from https://dashboard.aspose.cloud/

// ImagingApi 인스턴스를 생성합니다
Aspose.Imaging.Cloud.Sdk.Api.ImagingApi imagingApi = new ImagingApi(clientSecret, clientID,"https://api.aspose.cloud/","v3.0",false);

// 클라우드 스토리지에서 사용 가능한 TIFF 이미지 입력
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";

// 결과에는 지정된 프레임만 포함됩니다.
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);

// 업데이트된 이미지를 로컬 저장소에 저장
using (var fileStream = File.Create("/Users/nayyershahbaz/Downloads/MyResultant.tiff"))
{
    imageFrame.Seek(0, SeekOrigin.Begin);
    imageFrame.CopyTo(fileStream);
}

rotateFlipMethod 속성은 다음 값 중 하나를 가질 수 있습니다.

RotateFlip 메서드(Rotate180FlipNone, Rotate180FlipX, Rotate180FlipXY, Rotate180FlipY, Rotate270FlipNone, Rotate270FlipX, Rotate270FlipXY, Rotate270FlipY, Rotate90FlipNone, Rotate90FlipX, Rotate90FlipXY, Rotate90FlipY, RotateNoneFlipNone, RotateNoneFlipX, RotateNoneFlipXY, RotateNoneFlipY).기본값은 RotateNoneFlipNone입니다.

결론

다중 프레임 TIFF에서 TIFF 프레임을 추출하는 방법은 위의 문서에서 설명했습니다. 프레임 추출 외에도 API를 사용하면 TIFF 프레임 크기 조정, TIFF 프레임 속성 가져오기, TIFF 프레임 자르기, TIFF 프레임 회전 뒤집기 등을 수행할 수 있습니다. API를 사용하는 동안 문제가 발생하면 무료 지원 포럼을 통해 언제든지 문의해 주십시오.

또한 자세한 내용은 다음 링크를 참조하세요.