
민낯 문서를 보내지 마세요. Firemark는 단일 명령으로 이미지와 PDF에 워터마크를 적용합니다. AI 워터마크 제거에 대응하도록 최적화되었습니다. Rust로 작성되었습니다.
이미지와 PDF를 위한 빠르고 단일 바이너리 워터마킹 도구입니다. Rust로 작성되었습니다.
매년 수백만 명의 사람들이 단순한 문서 교환에서 시작되는 신원 사기 피해를 입습니다. 흔한 시나리오: 집을 구하려고 전월세 매물을 찾고 있다고 가정해 보세요. 임대인 — 또는 임대인을 가장한 사람 — 이 신분증, 급여 명세서, 세금 고지서 사본을 요청합니다. 아무 표시 없이 보냅니다. "임대인"은 사라지고, 내 문서는 이제 은행 계좌 개설, 대출, 또는 내 이름으로 된 신분 위조에 사용됩니다.
내가 보내는 모든 문서에 워터마크를 넣는 것은 가장 효과적인 단일 방어 수단입니다. **"XYZ 기관에 발송 — 2026년 3월 — 전월세 신청 전용"**이라고 읽히는 가시적 오버레이는 문서를 다른 목적으로는 쓸 수 없게 만듭니다. 문서가 유출되면 정확히 어디서 나왔는지 알 수 있습니다.
firemark는 이 과정을 간단하게 만듭니다: 하나의 명령으로 모든 이미지나 PDF, 17가지 시각적 스타일, 편집에 저항하는 암호화 필리그랑 패턴, 폴더 전체의 일괄 처리를 지원합니다.
전후 비교 — 한 번의 명령으로 문서가 이제 추적 가능하고 변조가 드러납니다.
사전 빌드된 바이너리(Linux 및 macOS, x86_64 및 arm64) — 최신 릴리스를 ~/.local/bin에 다운로드합니다:
curl -fsSL https://raw.githubusercontent.com/Vitruves/firemark/main/install.sh | sh
Windows 바이너리는 각 릴리스에 첨부되어 있습니다.
crates.io에서:
cargo install firemark
소스에서:
git clone https://github.com/Vitruves/firemark.git
cd firemark
cargo install --path .
단일 최적화 바이너리(~5MB)를 생성합니다.
# Watermark a single image
firemark photo_id.png -m "Flat rental — SCI Dupont — March 2026"
# Watermark a PDF
firemark tax_notice.pdf -m "CONFIDENTIAL" -s "Do not distribute"
# Watermark an entire folder recursively
firemark ./documents/ -R -m "Sent to Agency X" -t stamp
# Preview without writing files
firemark id_card.jpg -m "Draft" -n
출력은 기본적으로 입력 파일 옆에 {name}-watermarked.{ext}로 저장됩니다. 명시적 출력 경로를 설정하려면 -o를 사용하고, 사용자 지정 접미사를 사용하려면 -S를 사용하세요.
firemark doc.pdf -t stamp -m "CONFIDENTIAL" --border --color red
firemark는 지폐 보안 기능에서 영감을 받은 암호화 필리그랑 패턴을 오버레이합니다. 이러한 미세한 기하학적 패턴은 이미지 편집기로 제거하기 매우 어렵습니다.
firemark id.png -m "Rental application" --filigrane moire
firemark id.png -m "Rental application" --filigrane none # disable
모든 렌더링은 기본적으로 비결정적입니다. firemark는 렌더링 후 보편적인 교란(알파 지터, 서브픽셀 색상 노이즈, 가장자리 마이크로 도트, 희소 고스트 픽셀)과 렌더러별 무작위화를 적용하므로 동일한 설정에서도 두 출력이 픽셀 단위로 동일하지 않습니다. 이로 인해 AI 비전 모델이 빼낼 수 있는 예측 가능한 패턴을 학습하는 것이 불가능해집니다.
게다가 AI 워터마크 제거 도구를 혼란시키기 위해 적대적 프롬프트 인젝션 스트립이 기본적으로 포함됩니다. 보이는 프롬프트 텍스트를 원하지 않으면 --no-anti-ai로 비활성화하세요:
firemark doc.png -m "CONFIDENTIAL" --no-anti-ai
-m, --main-text Primary watermark text
-s, --secondary-text Secondary text line
-t, --type Watermark style (see table above)
-o, --output Output file path
-S, --suffix Custom output suffix (default: "watermarked")
-c, --color Color — name or #RRGGBB (default: blue)
-O, --opacity Opacity 0.0–1.0 (default: 0.5)
-r, --rotation Angle in degrees (default: -45)
-p, --position center, top-left, top-right, bottom-left, bottom-right, tile
-f, --font Font name or path to .ttf/.otf
-I, --image Overlay an image as watermark
--qr-data Embed a QR code with custom data
--qr-code-position QR code placement (default: center)
--qr-code-size QR code size in pixels (default: auto)
--border Draw a border around the watermark
--shadow Add a drop shadow
--filigrane Security filigrane style (default: guilloche)
--no-anti-ai Disable adversarial prompt injection (on by default)
전체 70개 이상의 플래그 목록은 CLI.md를 참조하세요.
--pages Pages to watermark (e.g. 1,3-5 or "all")
--skip-pages Pages to skip
--behind Place watermark behind content
--no-flatten Keep layers separate (flattened by default)
--dpi Render resolution (default: 150)
# Process all images and PDFs in a folder
firemark ./inbox/ -m "INTERNAL" -t tile
# Recursive, 8 threads, custom suffix
firemark ./docs/ -R -j 8 -m "Draft" -S draft
# Dry run — list what would be processed
firemark ./docs/ -R -m "Draft" -n
이미 워터마크가 적용된 파일(접미사와 일치하는 파일)은 다시 실행 시 자동으로 건너뜁니다.
반복적인 플래그를 피하려면 옵션을 TOML 파일에 저장하세요. 두 가지 프리셋이 포함된 전체 예제는 examples/config/firemark.toml를 참조하세요: ultra-secure(조밀한 타일링, 전체 필리그랑, QR 추적성, 메타데이터 제거) 및 light(간단한 대각선 텍스트, 추가 기능 없음).
# Global defaults
main_text = "CONFIDENTIAL"
secondary_text = "{author} — {date}"
watermark_type = "diagonal"
color = "#1a3c6e"
opacity = 0.45
font_weight = "bold"
filigrane = "guilloche"
border = true
[preset.ultra-secure]
main_text = "CONFIDENTIAL — {author}"
watermark_type = "tile"
color = "#CC0000"
opacity = 0.6
filigrane = "full"
anti_ai = true
qr_data = "firemark://{author}/{timestamp}/{uuid}"
strip_metadata = true
[preset.light]
main_text = "COPY"
watermark_type = "diagonal"
color = "#555555"
opacity = 0.3
filigrane = "none"
anti_ai = false
firemark doc.pdf --config firemark.toml
firemark doc.pdf --config firemark.toml --preset ultra-secure
firemark doc.pdf --config firemark.toml --preset light
firemark doc.pdf --save-preset mypreset # save current flags
firemark --list-presets # list available presets
형식 간 변환도 지원됩니다(예: firemark photo.webp -o out.pdf).
MIT
| Flag | 스타일 | 설명 |
|---|
diagonal | 대각선 격자 | 페이지 전체에 반복되는 대각선 텍스트(기본) |
stamp | 고무 도장 | 이중 테두리가 있는 대형 중앙 도장 |
stencil | 스텐실 | 전체 너비의 군용 스텐실 문자 |
typewriter | 타자기 | 고정폭 타자기 텍스트 |
handwritten | 서명 | 밑줄이 있는 손글씨 스타일 서명 |
redacted | 검열 | 전체 너비의 검은색 검열 바 |
badge | 방패 | 보안 방패/배지 엠블럼 |
ribbon | 리본 | 대각선 모서리 리본 배너 |
seal | 인장 | 원형 공증 스타일 인장 |
frame | 테두리 | 페이지 전체의 장식 테두리 |
tile | 타일 | 조밀하고 균일한 텍스트 격자 |
mosaic | 모자이크 | 무작위로 흩어진 텍스트 |
weave | 직조 | 맞물린 대각선 직조 |
ghost | 고스트 | 매우 미세한 엠보싱 텍스트 |
watercolor | 수채화 | 부드럽고 흐릿한 워시 효과 |
noise | 노이즈 | 픽셀 노이즈가 있는 거친 텍스트 |
halftone | 하프톤 | 하프톤 점 격자로 표현된 텍스트 |
| 스타일 | 설명 |
|---|
guilloche | 사인파형 엔벨로프 밴드(기본) |
rosette | 스피로그래프 + 모서리 로즈 커브 |
crosshatch | 미세한 대각선 다이아몬드 격자 |
border | 물결 모양의 중첩 보안 테두리 |
lissajous | 파라메트릭 리사주 도형 |
moire | 동심원 간섭 |
spiral | 아르키메데스 나선 소용돌이 |
mesh | 육각형 벌집 격자 |
plume | 표면 전체에 흩어진 흐르는 깃털 모양 곡선 |
constellation | 미세한 기하학적 웹으로 연결된 별 모양 노드 |
ripple | 무작위 원점에서 시작되는 중첩된 타원형 파면 |
full | 모든 패턴 결합 |
none | 필리그랑 비활성화 |
| 형식 | 입력 | 출력 |
|---|
| PNG | 예 | 예 |
| JPEG | 예 | 예 |
| 예 | 예 | |
| WebP | 예 | 예 |
| TIFF | 예 | 예 |