MetaRinse 가이드

MetaRinse가 이미지를 기기 내부에서 처리하는 방식

MetaRinse는 브라우저의 File, 이미지 디코딩, 캔버스, 객체 URL API를 사용합니다. 이미지 바이트와 추출한 항목은 서버로 보내지 않습니다.

JS YOO · 9분 · 게시 2026-07-12 · 최종 검토 2026-07-12 · 검토자 JS YOO

로컬 처리 순서

단계브라우저 동작네트워크
선택파일 입력으로 명시적 로컬 File 획득없음
검사지원 시 워커에서 exifr 분석없음
디코딩createImageBitmap 또는 이미지 요소로 픽셀 해석없음
재인코딩OffscreenCanvas 또는 canvas로 새 Blob 생성없음
검증새 Blob을 다시 분석없음
다운로드임시 객체 URL이 로컬 Blob을 가리킴없음

구조 다이어그램

브라우저 내부 이미지 처리 순서
  1. 로컬 파일사용자가 명시적으로 선택
  2. 검사시그니처 확인과 메타데이터 분석
  3. 디코딩브라우저 메모리의 이미지 픽셀
  4. 재인코딩캔버스가 새 Blob 생성
  5. 검증새 Blob을 다시 분석
  6. 다운로드임시 로컬 객체 URL

로컬 파일 → 시그니처 확인 → 메타데이터 분석 → 이미지 디코더 → 캔버스 픽셀 → 새 Blob → 재분석 → 로컬 다운로드. 서버 업로드 단계는 없습니다.

재인코딩이 메타데이터를 제거하는 이유

원본 컨테이너를 복사하지 않고 보이는 픽셀 결과를 해석한 뒤 브라우저 인코더에 새 JPEG, PNG, WebP Blob을 요청합니다. 원본 EXIF/XMP/IPTC 계열 블록은 인코더에 전달되지 않습니다. 그래도 결과를 다시 분석해 가정이 아니라 실제 동작을 확인합니다.

워커와 대체 경로

Worker, createImageBitmap, OffscreenCanvas가 있으면 분석과 인코딩을 화면 바깥 작업에서 수행합니다. 메모리를 조절하기 위해 파일은 차례로 처리합니다. OffscreenCanvas가 없는 브라우저는 메인 화면의 격리된 canvas 대체 경로를 사용합니다. 취소하면 남은 대기열을 멈추고 미완성 출력을 버립니다.

객체 URL 수명

미리보기와 다운로드의 blob: URL은 브라우저 메모리를 가리킵니다. 항목을 제거하거나 결과를 지우거나 앱이 종료될 때 해제합니다. 파일과 메타데이터는 localStorage, IndexedDB, 계정에 저장하지 않습니다.

일반 웹 요청이 남기는 것

사이트를 열면 HTML, JavaScript, CSS, 자체 호스팅 글꼴을 받기 위한 일반 요청이 생깁니다. 호스팅 사업자는 IP와 사용자 에이전트 같은 통상적인 연결 정보를 받을 수 있습니다. 광고를 켜기 전에는 동일 출처 자산만 불러오며 선택한 이미지, 이름, 메타데이터, 미리보기, 해시는 어떤 요청에도 넣지 않습니다.

트레이드오프

  • JPEG와 WebP는 선택한 품질로 손실 재인코딩됩니다.
  • PNG도 다시 생성되어 프로필 관련 정보가 달라질 수 있습니다.
  • 파일 크기와 미세한 픽셀 값이 바뀔 수 있습니다.
  • 제조사 고유 메타데이터를 검사기가 읽지 못할 수 있습니다.
  • 보이는 정보와 파일명은 별도로 확인해야 합니다.

출처

관련 가이드

직접 확인할 준비가 되었나요?

이미지는 기기 밖으로 전송되지 않습니다.

이미지 정리