2008-12-29 59 views
7

我想通过C#代码在我的JPEG图片中插入多个不可见的水印。这意味着我需要一个.NET库来完成这项工作,而不是一些外部批处理应用程序。在C#中添加一个不可见的图像水印?

有什么建议吗?在图片

+0

你的意思是“隐形”还是“透明”? – kgiannakakis 2008-12-29 11:37:19

+1

有可见和不可见的水印:http://www.riecks.com/security/ – splattne 2008-12-29 11:40:54

+0

我写了“不可见”,而不是“透明”... – 2008-12-29 12:01:33

回答

4

有难懂的库到C#中的端口,它可以很容易地为你执行该操作...

5

存储“看不见”的数据被称为“隐写术”。谷歌搜索“steganography .net”产生this article作为其最受欢迎 - 可能会证明是有用的。

1

本文就devx.com包含一个库(隐秘)的源代码,你可以使用:

Keeping Secrets Secret: Steganography with .NET

实施该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); 

UPDATE:哦,对不起。马特链接到同一篇文章......没有看到,而写这个答案。

2

这是什么目的?它是否使您能够识别从您的网站拍摄的JPG?

响应中评论说:“是的,我想通过使用一些稳健和不可见的水印来保护我的图片半可见网站的标志是不是一个选项...”

问题恰恰在上面关于隐写术的讨论中描述的那个,用于处理图像的鲁棒性。

像你所描述的那种水印都可以用来识别整个图像的直接副本,但是对于我来说,如果它在编辑器中被打开并再次保存,就有机会改变影响水印的压缩。另外,如果有人想要盗取你的图像并做更多的事情 - 修改色彩平衡,稍微修剪一下等等,看起来不可能有任何看不见的水印足够强壮以保持生存并保持可以识别。

不幸的是我在这里没有解决方案,但问题本身并不是微不足道的。可能值得寻找其他方法,以便您可以同时使用水印(自定义元数据或许可以防止图像轻松保存?),以便使图像更加难以被盗用或使它们的价值更低是...

1

如果它是一个重要的应用程序,你正在努力,为什么不尝试付费服务?

DigimarcSignumtech可以使用他们的SDK给你这种支持。