
画像とPDF用の高速なシングルバイナリ透かしツール。Rustで構築。
毎年、何百万人もの人々が、単純な書類のやり取りから始まる個人情報詐欺の被害に遭っています。よくあるシナリオ:あなたがアパートを探しているとします。大家(またはそのふりをする人物)が、身分証明書、給与明細、税務通知書のコピーを要求します。あなたは何も印を付けずに送信します。「大家」は姿を消し、あなたの書類は銀行口座を開設したり、ローンを組んだり、あなたの名前で身分を偽造するために使われます。
送信するすべての書類に透かしを入れることは、最も効果的な防御策です。「XYZ機関に送付 — 2026年3月 — 賃貸申込み専用」 と表示された可視のオーバーレイがあれば、その書類は他の目的には役に立たなくなります。もし漏洩した場合、どこから来たのかが正確にわかります。
firemark はこれを簡単に実現します:たった1つのコマンドで、あらゆる画像やPDF、17種類のビジュアルスタイル、編集に耐える暗号フィリグリーパターン、フォルダ全体のバッチ処理が可能です。
Before and After — 1コマンドで、ドキュメントが追跡可能かつ改ざん検出可能に。
プリビルドバイナリ(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 .
単一の最適化バイナリ(約5 MB)が生成されます。
# 単一画像に透かしを入れる
firemark photo_id.png -m "フラット賃貸 — SCI Dupont — 2026年3月"
# PDFに透かしを入れる
firemark tax_notice.pdf -m "CONFIDENTIAL" -s "配布禁止"
# フォルダ全体に再帰的に透かしを入れる
firemark ./documents/ -R -m "機関Xに送信" -t stamp
# ファイルに書き込まずにプレビュー
firemark id_card.jpg -m "下書き" -n
デフォルトでは、入力ファイルと同じ場所に {name}-watermarked.{ext} として保存されます。出力パスを指定するには -o、カスタムサフィックスを指定するには -S を使用します。
firemark doc.pdf -t stamp -m "CONFIDENTIAL" --border --color red
firemark は、紙幣のセキュリティ機能に着想を得た暗号フィリグリーパターンを重ねます。これらの微細な幾何学模様は、画像編集ソフトで除去するのが非常に困難です。
firemark id.png -m "賃貸申込み" --filigrane moire
firemark id.png -m "賃貸申込み" --filigrane none # 無効化
デフォルトでは、すべてのレンダリングは非決定的です。firemark は一般的なレンダリング後摂動(アルファのジッター、サブピクセルカラーノイズ、エッジのマイクロドット、疎なゴーストピクセル)とレンダラーごとのランダム化を適用するため、同じ設定でも2つの出力がピクセル単位で同一になることはありません。これにより、AIビジョンモデルが除去可能な予測可能なパターンを学習することが不可能になります。
さらに、デフォルトで敵対的プロンプトインジェクションストリップが埋め込まれ、AI透かし除去ツールを混乱させます。可視のプロンプトテキストが不要な場合は --no-anti-ai で無効化できます:
firemark doc.png -m "CONFIDENTIAL" --no-anti-ai
-m, --main-text メインの透かしテキスト
-s, --secondary-text 2行目のテキスト
-t, --type 透かしスタイル(上の表を参照)
-o, --output 出力ファイルパス
-S, --suffix カスタム出力サフィックス(デフォルト: "watermarked")
-c, --color 色 — 名前または #RRGGBB(デフォルト: 青)
-O, --opacity 不透明度 0.0〜1.0(デフォルト: 0.5)
-r, --rotation 角度(度)(デフォルト: -45)
-p, --position 位置: center, top-left, top-right, bottom-left, bottom-right, tile
-f, --font フォント名または .ttf/.otf へのパス
-I, --image 画像を透かしとして重ねる
--qr-data カスタムデータでQRコードを埋め込む
--qr-code-position QRコードの配置(デフォルト: center)
--qr-code-size QRコードのサイズ(ピクセル)(デフォルト: auto)
--border 透かしの周りに枠を描く
--shadow ドロップシャドウを追加
--filigrane セキュリティフィリグリースタイル(デフォルト: guilloche)
--no-anti-ai 敵対的プロンプトインジェクションを無効化(デフォルトで有効)
70以上の全フラグのリストは CLI.md を参照。
--pages 透かしを入れるページ(例: 1,3-5 または "all")
--skip-pages スキップするページ
--behind 透かしをコンテンツの後ろに配置
--no-flatten レイヤーを分離したままにする(デフォルトではフラット化)
--dpi レンダリング解像度(デフォルト: 150)
# フォルダ内のすべての画像とPDFを処理
firemark ./inbox/ -m "INTERNAL" -t tile
# 再帰的、8スレッド、カスタムサフィックス
firemark ./docs/ -R -j 8 -m "下書き" -S draft
# ドライラン — 処理されるファイルをリスト表示
firemark ./docs/ -R -m "下書き" -n
既に透かしが入っているファイル(サフィックスが一致するもの)は、再実行時に自動的にスキップされます。
オプションをTOMLファイルに保存して、フラグの入力を繰り返さないようにできます。完全な例(超高セキュリティ:密集タイル、完全フィリグリー、QRトレーサビリティ、メタデータ除去、およびライト:単純な対角テキスト、余計なものなし)の2つのプリセットを含む examples/config/firemark.toml を参照。
# グローバルデフォルト
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 # 現在のフラグを保存
firemark --list-presets # 利用可能なプリセットを一覧表示
フォーマット間の変換もサポート(例: firemark photo.webp -o out.pdf)。
MIT
| フラグ | スタイル | 説明 |
|---|
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 | 可 | 可 |