C# コードを使用して、複数の非表示の透かしを JPEG 画像に挿入したいと考えています。つまり、外部バッチ アプリケーションではなく、この作業を行う .NET ライブラリが必要です。
助言がありますか?
「見えない」データを写真に保存することは、「ステガノグラフィ」として知られています。「steganography.net」をグーグルで検索すると、この記事がトップヒットとして表示されます。これは役立つかもしれません。
c#へのimage magickライブラリのポートがあり、それはあなたのためにその操作を簡単に実行することができます...
これの目的は何ですか?サイトから取得したJPGを識別できるようにするためですか?
コメントでの回答:「はい、堅牢で目に見えない透かしを使用して写真を保護したいと思います。半透明のサイトロゴはオプションではありません...」
問題は、画像の堅牢性に関係する、上記のステガノグラフィの説明で説明されている問題です。
あなたが説明するような透かしは、画像全体の直接コピーを識別するために使用できますが、jpgを使用すると、それを開いてエディタで再度保存した場合でも、圧縮の変更が影響する可能性があるようです。透かし。また、誰かがあなたの画像を盗み、カラーバランスをいじくり回してもっと広範囲なことをした場合、それを少しトリミングするなど、目に見えない透かしが生き残り、認識できるほど堅牢になる可能性は低いようです。
残念ながら、ここには解決策がありませんが、問題自体は些細なことではありません。他のアプローチを探す価値があるかもしれません。おそらく、透かしと並行して使用して(カスタムメタデータ?画像が簡単に保存されないようにする?)、画像が盗まれにくくしたり、画像の価値を下げたりすることができます。それは...
devx.comのこの記事には、使用できるソースコードを含むライブラリ(Stego)が含まれています。
そのAPIを実装した後、.bmpファイル内にメッセージを隠すのは簡単です。
ICoverFile cover = new BMPCoverFile("cover.bmp");
cover.CreateStegoFile("stego.bmp","Hello","MyPwd");
同様に、メッセージを同じように簡単に抽出できます。
IStegoFile stego = new
BMPStegoFile("stego.bmp","MyPwd");
Console.WriteLine(stego.HiddenMessage);
更新:ああ、ごめんなさい。マットは同じ記事にリンクしていました...この答えを書いている間、それを見ませんでした。
取り組んでいる重要なアプリケーションである場合は、有料サービスを試してみませんか?
DigimarcとSignumtechは、SDK を使用してそのようなサポートを提供できます。