firemark
Alat watermarking cepat dan single-binary untuk gambar dan PDF. Dibangun dengan Rust.
Mengapa memberi watermark pada dokumen Anda?
Setiap tahun, jutaan orang menjadi korban penipuan identitas yang dimulai dari pertukaran dokumen yang sederhana. Skenario yang umum: Anda mencari apartemen untuk disewa. Pemilik — atau seseorang yang berpura-pura sebagai pemilik — meminta salinan KTP Anda, slip gaji, atau surat pemberitahuan pajak. Anda mengirimkannya tanpa tanda. "Pemilik" tersebut menghilang, dan dokumen Anda kini digunakan untuk membuka rekening bank, mengambil pinjaman, atau memalsukan identitas atas nama Anda.
Memberi watermark pada setiap dokumen yang Anda kirim adalah pertahanan paling efektif. Tampilan overlay yang terlihat bertuliskan "Dikirim ke agensi XYZ — Maret 2026 — hanya untuk aplikasi sewa apartemen" membuat dokumen tersebut tidak berguna untuk tujuan lain. Jika dokumen bocor, Anda tahu persis dari mana asalnya.
firemark membuat ini sangat mudah: satu perintah, gambar atau PDF apa saja, 17 gaya visual, pola filigran kriptografis yang tahan terhadap pengeditan, dan pemrosesan batch untuk seluruh folder.
Sebelum dan sesudah — satu perintah, dokumen kini dapat dilacak dan terbukti jika dirusak.
Instalasi
Dari crates.io:
cargo install firemark
Dari sumber:git clone https://github.com/Vitruves/firemark.git
cd firemark
cargo install --path .
Menghasilkan satu berkas biner yang dioptimalkan (~5 MB).Mulai cepat
# 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 stampPreview without writing files
firemark id_card.jpg -m "Draft" -nOutput disimpan berdampingan dengan input sebagai {name}-watermarked.{ext} secara default.
Gunakan -o untuk menentukan jalur output secara eksplisit, atau -S untuk suffix khusus.
Jenis Watermark
| Flag | Gaya | Deskripsi |
|---|---|---|
| diagonal | Grid diagonal | Teks diagonal berulang di seluruh halaman (default) |
| stamp | Cap karet | Cap besar di tengah dengan dua garis tepi |
| stencil | Stensil | Huruf stensil militer sepanjang halaman |
| typewriter | Mesin ketik | Teks monospace gaya mesin ketik |
| handwritten | Tanda tangan | Tanda tangan gaya tulisan tangan dengan garis bawah |
| redacted | Redaksi | Bar redaksi hitam sepanjang halaman |
| badge | Perisai | Emblem perisai/medali keamanan |
| ribbon | Pita | Banner pita diagonal di sudut |
| seal | Segel | Segel notaris gaya lingkaran |
| frame | Bingkai | Bingkai dekoratif di seluruh halaman |
| tile | Ubin | Grid teks seragam yang rapat |
| mosaic | Mosaik | Teks acak yang tersebar |
| weave | Anyaman | Anyaman diagonal yang saling terkait |
| ghost | Hantu | Teks emboss ultra-halus |
| watercolor | Cat air | Efek sapuan kabur lembut |
| noise | Noise | Teks rusak dengan noise piksel |
| halftone | Halftone | Teks sebagai grid titik halftone |
firemark doc.pdf -t stamp -m "CONFIDENTIAL" --border --color redFiligrane Keamanan
firemark menampilkan pola filigrane kriptografi yang terinspirasi dari fitur keamanan uang kertas. Pola geometris halus ini sangat sulit dihapus dengan editor gambar.
| Gaya | Deskripsi |
|---|---|
| guilloche | Pita amplop gelombang sinusoidal (default) |
| rosette | Spirograf + kurva mawar di sudut |
| crosshatch | Kisi berlian diagonal halus |
| border | Garis tepi keamanan berlapis bergelombang |
| lissajous | Figur parametrik Lissajous |
| moire | Interferensi lingkaran konsentris |
| spiral | Pusaran spiral Archimedean |
| mesh | Kisi sarang lebah heksagonal |
| plume | Kurva seperti bulu yang mengalir tersebar di permukaan |
| constellation | Titik bintang dihubungkan oleh jaring geometris halus |
| ripple | Gelombang elips bertumpuk dari asal acak |
| full | Semua pola digabungkan |
| none | Menonaktifkan filigrane |
firemark id.png -m "Rental application" --filigrane moire
firemark id.png -m "Rental application" --filigrane none # disablePenguatan Penghapusan AI
Setiap render bersifat non-deterministik secara default. firemark menerapkan gangguan pasca-render universal (jitter alpha, noise warna sub-piksel, mikro-titik tepi, piksel hantu jarang) dan pengacakan per-renderer sehingga tidak ada dua output yang identik secara piksel — bahkan dengan pengaturan yang sama. Ini membuat model visi AI tidak mungkin mempelajari pola yang dapat diprediksi untuk dikurangi.
Selain itu, strip injeksi prompt adversarial disematkan secara default untuk
membingungkan alat penghapus watermark AI. Nonaktifkan dengan --no-anti-ai jika Anda tidak
menginginkan teks prompt yang terlihat:
firemark doc.png -m "CONFIDENTIAL" --no-anti-aiOpsi umum
-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)Untuk daftar lengkap lebih dari 70 flag, lihat CLI.md.
Opsi PDF
--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)Pemrosesan batch
# Process all images and PDFs in a folder
firemark ./inbox/ -m "INTERNAL" -t tileRecursive, 8 threads, custom suffix
firemark ./docs/ -R -j 8 -m "Draft" -S draftDry run — list what would be processed
firemark ./docs/ -R -m "Draft" -n
File yang sudah diberi watermark (yang cocok dengan akhiran) akan otomatis dilewati pada
pengulangan proses.Berkas Konfigurasi
Simpan opsi di dalam berkas TOML untuk menghindari pengulangan flag. Lihat
examples/config/firemark.toml untuk contoh lengkap
dengan dua preset: ultra-secure (penyusunan padat, filigrane penuh, pelacakan QR,
penghapusan metadata) dan light (teks diagonal sederhana, tanpa tambahan).
# 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 presetsDukungan format
| Format | Input | Output | |---|---|---| | PNG | ya | ya | | JPEG | ya | ya | | PDF | ya | ya | | WebP | ya | ya | | TIFF | ya | ya |
Konversi lintas format didukung (misalnya firemark photo.webp -o out.pdf).
Lisensi
MIT
--- Tranlated By Open Ai Tx | Last indexed: 2026-04-11 ---