LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

在C#中為圖片添加數(shù)字水印的幾種辦法

admin
2025年7月19日 23:44 本文熱度 280

最近在寫個(gè)人項(xiàng)目時(shí),有遇到需要將圖片加上水印防止被盜取的需求。這里找了幾種實(shí)現(xiàn)方式,可供有需要的朋友參考。

本身我不是搞算法這塊的,所以這里只是找了一些實(shí)現(xiàn),也沒有繼續(xù)深究下去。

以前在學(xué)校的時(shí)候從書上了解過可以將一些信息嵌入到圖片中的技術(shù),這次順便也在網(wǎng)上找到了這種實(shí)現(xiàn)方式。

 

方式一,直接使用GDI+繪制水印到圖片上

這種方式的話存在幾個(gè)問題

1、水印很容易被清除,用ps的內(nèi)容識(shí)別一下就干掉了

2、水印的文字大小不好控制(理論是可以根據(jù)圖片的大小動(dòng)態(tài)計(jì)算字符的大小的,以前見過這種實(shí)現(xiàn),但這里我也沒去仔細(xì)找實(shí)現(xiàn)了,就大概寫了個(gè)根據(jù)圖片大小調(diào)整字符大小的邏輯。) 

實(shí)現(xiàn)邏輯如下:

public static void DrawWatermark(string imageFilePath,string watermark)        {            using (MemoryStream ms = new MemoryStream(System.IO.File.ReadAllBytes(imageFilePath)))            {                Bitmap bitmap = (Bitmap)Image.FromStream(ms);
                using (Graphics graphics = Graphics.FromImage(bitmap))                {                    var size = (float)(bitmap.Height * 0.02);                    if (size < 10)                        size = 10f;                    using (Font arialFont = new Font("Arial", size, GraphicsUnit.Pixel))                    {                        var location = new Point(00);                        graphics.DrawString(watermark, arialFont, new SolidBrush(Color.FromArgb(120, Color.Silver)), location);                    }                }
                bitmap.Save(imageFilePath);            }        } 

繪制出來大概效果如下:

 

 

方式二、將圖片信息嵌入到圖片中

這是我在github上找到一種實(shí)現(xiàn)方式,項(xiàng)目地址:https://github.com/mchall/HiddenWatermark

項(xiàng)目描述:

使用盲DWT-DCT方法在圖像中嵌入隱藏水印。與隱寫方法不同,這種隱藏水印能夠抵抗各種形式的攻擊。僅限于黑白32x32水印圖像。

項(xiàng)目里有示例,可以根據(jù)示例進(jìn)行調(diào)用。  

使用這種方法,可以將一個(gè)32x32的黑白圖像嵌入到圖片中。

經(jīng)過我實(shí)際 測(cè)試,發(fā)現(xiàn)如果圖片太小,是不支持這種嵌入方式 的。個(gè)人推斷應(yīng)該是如果圖片太小,還未達(dá)到寫入32x32圖片的空間大小。具體最小支持到什么尺寸的圖片,我也沒有仔細(xì)去計(jì)算了。 

效果如下:

我這里弄了一張寫了zti三個(gè)字的灰度圖,然后嵌入到圖片中去。

 +      

 嵌入 后,圖片看起來跟原始圖像沒有區(qū)別,但是能再次把嵌入的圖片提取出來

 

方式三、將文字信息嵌入到圖片中

這是我在CodeProject上找到的一種實(shí)現(xiàn)方式。可以在下面的鏈接中下載到實(shí)現(xiàn)的源碼和示例程序,直接參考集成即可。

項(xiàng)目地址:https://www.codeproject.com/Tips/635715/Steganography-Simple-Implementation-in-Csharp

使用這種方式,可以將文字嵌入到圖片中,然后再次提取出來。

注意:注意:不要以有損格式(如 JPEG)保存結(jié)果圖像;推薦是保存為PNG。 

效果如下:

我這里嵌入了HelloWorld到圖片中,可以再次從圖片中提取出來


閱讀原文:原文鏈接


該文章在 2025/7/21 10:43:31 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
亚洲性夜夜综合久久9 | 色多多一区二区三区在线观看 | 亚洲国内自拍欧美一区二区三区 | 在线播放亚洲精品 | 日本狂喷奶水在线播放212 | 亚洲美女在线免费视频 |