Excel에서 GroupDocs.Watermark Java를 사용하여 이미지 검색하는 방법

Excel 워크북 내부에서 특정 이미지를 검색하는 작업은 특히 파일이 크거나 삽입된 그래픽이 많을 때 번거로울 수 있습니다. 이미지 검색 방법은 문서 워크플로를 자동화하는 모든 사람에게 중요한 질문이 됩니다. 이 가이드에서는 GroupDocs.Watermark Java를 사용해 Excel 스프레드시트에서 이미지를 검색하는 정확한 방법을 보여주고, Excel 파일 java 로드 프로젝트를 효율적으로 수행하는 필수 단계도 다룹니다.

빠른 답변

  • 임베디드 이미지를 찾는 가장 빠른 방법은 무엇인가요? ImageDctHashSearchCriteria와 SpreadsheetSearchableObjects.AttachedImages를 사용합니다.
  • 특별한 라이선스가 필요합니까? 임시 또는 체험 라이선스가 전체 검색 기능을 활성화합니다.
  • 필요한 Maven 의존성은 무엇인가요? pom.xml에 com.groupdocs:groupdocs-watermark를 추가합니다.
  • 검색을 단일 시트로 제한할 수 있나요? 예, 시트 이름을 사용해 SpreadsheetLoadOptions를 구성합니다.
  • API가 스레드‑안전한가요? 적절히 초기화한 후 모든 공개 메서드는 동시 사용에 안전합니다.

ImageDctHashSearchCriteria는 이미지 비교에 사용되는 DCT 해시를 정의합니다. SpreadsheetSearchableObjects.AttachedImages는 검색을 임베디드 그림으로 제한합니다.

GroupDocs.Watermark 컨텍스트에서 “이미지 검색 방법”이란 무엇인가요?

**“How to search images”**는 Watermarker API를 사용하여 문서 내부에 임베디드된 그림 객체를 프로그래밍적으로 찾는 것을 의미합니다. 라이브러리는 각 워크시트를 스캔하고, 그림 객체를 추출한 뒤, 해당 객체의 이산 코사인 변환(DCT) 해시를 계산하고, 이를 대상 이미지의 해시와 비교하여 일치하는 경우 워터마크 객체로 반환하며, 이후 추가 처리할 수 있습니다.

Excel 이미지 검색에 GroupDocs.Watermark를 사용하는 이유

GroupDocs.Watermark는 50개 이상의 입력 및 출력 포맷(XLSX, XLS, CSV, ODS 등)을 지원하며, 전체 파일을 메모리에 로드하지 않고 수백 페이지 워크북을 처리합니다. DCT‑hash 알고리즘은 95 % 이상의 정확도로 시각적으로 유사한 이미지를 식별하여 오탐을 크게 줄입니다. 또한 라이브러리는 스트리밍 접근을 제공해 사용 가능한 RAM보다 큰 파일도 작업할 수 있으며, 비밀번호로 보호된 워크북에 대한 기본 지원을 제공하여 엔터프라이즈 수준 자동화 파이프라인에 적합합니다.

사전 요구 사항

시작하기 전에 다음이 준비되어 있는지 확인하세요:

  • **Java Development Kit (JDK) 8+**이 설치되어 PATH에 설정되어 있어야 합니다.
  • Maven을 사용해 의존성을 관리합니다(또는 JAR를 직접 다운로드할 수 있습니다).
  • GroupDocs.Watermark 라이선스(체험, 임시 또는 영구)를 통해 검색 API를 사용할 수 있습니다.
  • Java 컬렉션 및 예외 처리에 대한 기본적인 이해.

필수 라이브러리 및 의존성

GroupDocs.Watermark Java를 사용하려면 Maven으로 환경을 설정하거나 필요한 라이브러리를 다운로드하세요. 다음을 확인하십시오:

  • Maven 설정: pom.xml에 GroupDocs 저장소와 의존성을 추가합니다.
  • Java Development Kit (JDK): 버전 8 이상이 필요합니다.

환경 설정 요구 사항

시스템에 Java가 올바르게 설치되어 있는지 확인하고, 이 설치 방식을 선택한다면 Maven도 의존성 관리용으로 설치하십시오.

지식 사전 요구 사항

Java 프로그래밍에 대한 기본 이해와 프로그래밍 방식으로 Excel 파일을 다루는 방법에 대한 친숙함이 도움이 됩니다. 이러한 개념에 익숙하지 않다면 먼저 입문 자료를 살펴보세요.

Java용 GroupDocs.Watermark를 설정하는 방법

Maven 프로젝트를 로드하고, 의존성을 추가한 뒤 적절한 설정으로 Watermarker를 초기화합니다. 이 두 단계 과정으로 검색을 시작할 준비가 됩니다. 먼저 pom.xml에 Maven 저장소와 의존성을 추가하고, 그 다음 Excel 파일 경로와 원하는 시트 및 검색 설정을 지정하는 WatermarkLoadOptions 객체를 전달해 Watermarker 인스턴스를 생성합니다. SpreadsheetLoadOptions를 사용하면 로드할 시트를 지정하고 대소문자 구분과 같은 검색 옵션을 구성할 수 있습니다. Watermarker는 문서를 로드하고 검색 또는 워터마크 작업을 수행하는 주요 진입점입니다.

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/watermark/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-watermark</artifactId>
      <version>24.11</version>
   </dependency>
</dependencies>

특정 검색 설정으로 Excel 파일(java)을 로드하는 방법

라이브러리에게 첨부된 이미지만 확인하도록 지시하면서 워크북을 로드합니다. 이 집중된 접근 방식은 일반적인 스프레드시트에서 처리 시간을 최대 **30 %**까지 단축합니다.

import com.groupdocs.watermark.Watermarker;
// Basic initialization code here...

검색을 첨부된 이미지만 대상으로 구성하는 방법

SpreadsheetSearchableObjects 열거형을 사용하면 정확히 스캔할 항목을 지정할 수 있습니다. AttachedImages로 설정하면 엔진이 그림 객체만 검색하고 텍스트, 수식 또는 차트는 무시합니다.

import com.groupdocs.watermark.WatermarkerSettings;
import com.groupdocs.watermark.options.SpreadsheetLoadOptions;

WatermarkerSettings settings = new WatermarkerSettings();
settings.getSearchableObjects().setSpreadsheetSearchableObjects(SpreadsheetSearchableObjects.AttachedImages);

DCT 해시 기준을 사용해 이미지 검색을 실행하는 방법

DCT‑hash 방법은 참조 이미지의 간결한 지문을 생성하고 이를 각 임베디드 그림과 비교하여 시각적으로 높은 유사성을 가진 일치 항목을 반환합니다.

import com.groupdocs.watermark.Watermarker;

String filePath = "YOUR_DOCUMENT_DIRECTORY/spreadsheet.xlsx";
SpreadsheetLoadOptions loadOptions = new SpreadsheetLoadOptions();
Watermarker watermarker = new Watermarker(filePath, loadOptions, settings);

DCT 해시 검색 기준을 정의하는 방법

ImageDctHashSearchCriteria는 참조 이미지와 선택적 유사도 임계값을 캡슐화합니다. 임계값(0‑100)을 조정하여 매칭을 엄격하게 또는 느슨하게 할 수 있습니다.

// Reuse the previous configuration from the 'Load Spreadsheet' section.

검색을 실행하고 결과를 처리하는 방법

watermarker.search(criteria)를 호출하면 Watermark 객체 컬렉션이 반환됩니다. 컬렉션을 반복하여 페이지 번호, 셀 주소를 가져오거나 이미지를 교체할 수 있습니다.

import com.groupdocs.watermark.search.ImageDctHashSearchCriteria;

String imagePath = "YOUR_DOCUMENT_DIRECTORY/sample_image.png";
ImageDctHashSearchCriteria criteria = new ImageDctHashSearchCriteria(imagePath);

실용적인 적용 사례

다음은 이러한 기능이 빛을 발하는 실제 시나리오입니다:

  1. 문서 관리 시스템: 임베디드된 로고 또는 제품 사진을 기반으로 스프레드시트를 자동으로 인덱싱하고 태그를 지정합니다.
  2. 데이터 감사: 버전 간 DCT 해시를 비교하여 시각적 데이터(차트, 스크린샷)가 변경되지 않았는지 확인합니다.
  3. 콘텐츠 검증: 재무 보고서나 마케팅 자료에 허가된 브랜드 자산만 표시되는지 확인합니다.

성능 고려 사항

애플리케이션을 빠르게 유지하려면:

  • 검색 범위를 AttachedImages로만 제한합니다; 평균적으로 CPU 사용량을 ~30 % 줄입니다.
  • 대용량 파일을 전체 워크북이 아니라 개별 시트를 로드하여 청크 단위로 처리합니다.
  • 여러 검색에서 WatermarkerSettings를 재사용해 객체 생성을 반복하지 않도록 합니다.
  • Java 프로파일링 도구로 메모리를 모니터링합니다; 라이브러리는 데이터를 스트리밍하지만 매우 큰 이미지는 힙 사용량에 영향을 줄 수 있습니다.

일반적인 문제와 해결책

증상가능한 원인해결 방법
결과가 반환되지 않음SearchableObjects가 None으로 설정됨SpreadsheetSearchableObjects.AttachedImages로 설정합니다.
500페이지 파일에서 OutOfMemoryError 발생전체 워크북을 메모리에 로드함setLoadAllSheets(false)를 사용한 SpreadsheetLoadOptions를 적용하고 시트를 개별적으로 로드합니다.
해시 비교에서 오탐 발생임계값이 너무 낮음(예: 30)엄격한 매칭을 위해 유사도 임계값을 80‑90으로 높입니다.

자주 묻는 질문

Q: GroupDocs.Watermark가 Excel에서 읽을 수 있는 파일 형식은 무엇인가요?
A: XLSX, XLS, CSV, ODS를 지원하며 레거시 및 최신 워크북 구조를 모두 처리합니다.

Q: 첨부되지 않은 이미지(예: 떠 있는 도형)를 검색할 수 있나요?
A: 예, SpreadsheetSearchableObjects.All을 설정하면 떠 있는 그림, 차트 및 기타 그리기 객체를 포함할 수 있습니다.

Q: DCT 해시 매칭의 정확도는 어느 정도인가요?
A: 이 알고리즘은 크기가 조정되거나 약간 색상이 변한 이미지에 대해 95 % 이상의 유사도 감지를 달성하여 브랜드 검증에 이상적입니다.

Q: 찾은 이미지를 자동으로 교체할 수 있나요?
A: 물론입니다. Watermark를 찾은 후 watermarker.replace(watermark, newImagePath)를 호출하면 그래픽을 교체할 수 있습니다.

Q: 라이브러리를 Linux 컨테이너에서 사용할 수 있나요?
A: 예, GroupDocs.Watermark는 순수 Java이며 호환 가능한 JRE가 있는 모든 플랫폼, Docker 기반 Linux 컨테이너에서도 실행됩니다.

결론

이 튜토리얼에서는 환경 설정부터 DCT‑hash 기반 검색 실행까지 GroupDocs.Watermark Java를 사용해 Excel 워크북 내부에서 이미지를 검색하는 방법을 단계별로 살펴보았습니다. 스캔을 첨부된 이미지로 제한하고 강력한 해시 비교를 활용하면 이미지 검증 워크플로우를 크게 가속화하면서 높은 정확성을 유지할 수 있습니다. 다음 단계에서는 라이브러리의 워터마크 추가 기능을 탐색하거나 검색 로직을 더 큰 문서 처리 파이프라인에 통합해 보세요.


마지막 업데이트: 2026-06-01
테스트 환경: GroupDocs.Watermark 23.12 for Java
작성자: GroupDocs

리소스

import com.groupdocs.watermark.PossibleWatermarkCollection;

PossibleWatermarkCollection possibleWatermarks = watermarker.search(criteria);

리소스

관련 튜토리얼