tiff 이미지를 추출하는 방법

TIFF 파일에서 이미지를 추출하는 방법

TIF의 TIFF는 Tag Image File Format의 약자로 그래픽 아티스트, 출판 업계 및 사진가들이 널리 사용하는 인기 있는 래스터 그래픽 이미지 중 하나입니다. TIFF는 JPEG, GIFPNG와 다른데, 이는 “압축되지 않은” 형식이며 JPEG보다 훨씬 더 많은 이미지 데이터를 저장할 수 있기 때문입니다. 이제 TIFF 파일의 눈에 띄는 기능 중 하나는 여러 이미지(각각 여러 채널이 있음)를 이미지의 타임 스택 또는 z 스택의 순차적 프레임으로 저장하는 기능입니다. 그래서 이 글에서는 Java Cloud SDK를 사용하여 다중 프레임 TIFF 이미지에서 프레임을 추출하는 방법에 대해 자세히 살펴보겠습니다.

TIFF 이미지 처리 API

우리는 래스터, 메타파일, 포토샵 및 기타 지원되는 형식을 다양한 파일 형식으로 편집, 조작 및 변환하는 기능을 제공하는 이미지 처리 API를 만들었습니다. 이제 TIFF 이미지 조작에 대해 이야기하면 API는 TIFF 이미지를 처리할 수 있는 능력이 매우 뛰어납니다. 따라서 이 문서의 범위에 따라 REST API를 둘러싼 래퍼인 Aspose.Imaging Cloud SDK for Java를 사용할 것입니다. 따라서 그 기능을 활용하는 첫 번째 단계는 pom.xml(maven 빌드 유형 프로젝트)에 다음 정보를 포함하여 Java 프로젝트에 해당 참조를 추가하는 것입니다.

<repositories> 
    <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>

<dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-imaging-cloud</artifactId>
        <version>22.4</version>
    </dependency>
</dependencies>

다음 단계는 클라우드 대시보드에서 클라이언트 자격 증명 세부 정보를 얻는 것입니다. Aspose Cloud 대시보드에 계정이 없는 경우 유효한 이메일 주소를 통해 무료 계정을 만드십시오. 이제 새로 만든 계정으로 로그인하고 Aspose Cloud Dashboard에서 Client ID와 Client Secret을 조회/생성합니다.

Java에서 TIFF 이미지를 추출하는 방법

Java 코드 스니펫을 사용하여 tiff 파일에서 이미지를 추출하는 방법에 대해 자세히 살펴보겠습니다. API를 사용하면 추출된 프레임의 크기 조정, 자르기 및 회전 회전도 가능합니다. 또한 부울 매개변수 saveOtherFrames 중 하나를 사용하면 결과에 다른 모든 프레임을 포함할지 또는 지정된 프레임만 포함할지 여부를 지정할 수 있습니다.

  • 먼저 개인화된 클라이언트 자격 증명을 기반으로 ImagingApi 객체를 생성합니다.
  • 둘째, readAllBytes(…) 메서드를 사용하여 첫 번째 TIFF 이미지의 내용을 읽고 byte[] 배열에 전달합니다.
  • 셋째, 클라우드 스토리지를 통해 TIFF의 이름을 지정하는 UploadFileRequest 클래스의 인스턴스를 생성합니다.
  • 이제 uploadFile(…) 메서드를 사용하여 첫 번째 TIFF 이미지를 클라우드 스토리지에 업로드합니다.
  • 다음 단계는 TIFF 프레임 인덱스, 추출된 프레임의 높이 및 너비, 추출 원점을 지정하고 추출된 프레임을 특정 천사로 원하는지 지정하는 것입니다.
  • 이제 입력 TIFF 이미지와 위에 정의된 속성을 지정하는 GetImageFrameRequest 객체를 생성합니다.
  • ImagingAPI의 getImageFrame(…) 메서드를 호출하여 TIFF 프레임 가져오기
  • 추출된 프레임을 FileOutputStream 개체를 사용하여 로컬 드라이브에 저장
// https://dashboard.aspose.cloud/에서 ClientID 및 ClientSecret 가져오기
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 이미지는 DeskewSampleImage.tif에서 다운로드할 수 있습니다.

cURL 명령을 사용한 TIFF 이미지 처리

REST API에 액세스하는 또 다른 편리한 방법은 cURL 명령을 사용하는 것입니다. Aspose.Imaging Cloud는 REST 아키텍처를 기반으로 하므로 cURL 명령을 사용하여 tiff 이미지 프레임을 추출할 수도 있습니다. 이제 이 활동의 전제 조건은 다음 명령을 사용하여 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 파일에서 이미지를 추출하는 방법에 대해 필요한 모든 세부 정보를 배웠습니다. Java Java 코드 조각을 사용하거나 cURL 명령을 통해 TIFF 프레임을 추출하는 옵션을 탐색했습니다. API의 유망한 기능을 테스트하는 또 다른 접근 방식은 SwaggerUI를 통한 것이며 SDK의 소스 코드를 수정하려는 경우 GitHub에서 다운로드할 수 있습니다(모든 Cloud SDK는 MIT에서 개발됨) 특허).

그럼에도 불구하고 제품 설명서는 API에서 제공하는 다른 흥미로운 기능에 대해 배울 수 있는 놀라운 정보 소스입니다. 마지막으로 API를 사용하는 동안 문제가 발생하는 경우 무료로 빠른 해결을 위해 저희에게 연락하는 것을 고려할 수 있습니다. 제품 지원 포럼.

관련 기사

자세한 내용은 다음 링크를 참조하십시오.