-
大小: 1.91MB文件類(lèi)型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-10-23
- 語(yǔ)言: 其他
- 標(biāo)簽: 數(shù)字水印??隱寫(xiě)技術(shù)??
資源簡(jiǎn)介
數(shù)字水印(Digital Watermarking)技術(shù)是將一些標(biāo)識(shí)信息(即數(shù)字水印)直接嵌入數(shù)字載體當(dāng)中(包括多媒體、文檔、軟件等)或是間接表示(修改特定區(qū)域的結(jié)構(gòu)),且不影響原載體的使用價(jià)值,也不容易被探知和再次修改。但可以被生產(chǎn)方識(shí)別和辨認(rèn)。通過(guò)這些隱藏在載體中的信息,可以達(dá)到確認(rèn)內(nèi)容創(chuàng)建者、購(gòu)買(mǎi)者、傳送隱秘信息或者判斷載體是否被篡改等目的。數(shù)字水印是實(shí)現(xiàn)版權(quán)保護(hù)的有效辦法,是信息隱藏技術(shù)研究領(lǐng)域的重要分支和研究方向。

代碼片段和文件信息
//?DIB.cpp
#include?“stdafx.h“
#include?“DIB.h“
CDib::CDib()
{
m_pDib?=?NULL;
m_pWordData?=?NULL;
m_pFile?=?NULL;
m_pOldDibShow?=?NULL;
}
CDib::~CDib()
{
if(?m_pDib?!=?NULL?)
delete?[]?m_pDib;
if(?m_pWordData?!=?NULL?)
delete?[]?m_pWordData;
if?(m_pFile?!=?NULL)
delete?[]?m_pFile;
if?(m_pOldDibShow?!=?NULL)
delete?[]?m_pOldDibShow;
}
BOOL?CDib::Load(?const?char?*pszFilename?)
{
CFile?cf;
if(?!cf.Open(?pszFilename?CFile::modeRead?)?)
return(?FALSE?);
DWORD?dwDibSize;
dwDibSize?=
cf.GetLength()?-?sizeof(?BITMAPFILEHEADER?);
unsigned?char?*pDib;
pDib?=?new?unsigned?char?[dwDibSize];
if(?pDib?==?NULL?)
return(?FALSE?);
BITMAPFILEHEADER?BFH;
try{
if(?cf.Read(?&BFH?sizeof(?BITMAPFILEHEADER?)?)
!=?sizeof(?BITMAPFILEHEADER?)?||
BFH.bfType?!=?‘MB‘?||
cf.Read(?pDib?dwDibSize?)?!=?dwDibSize?){
delete?[]?pDib;
return(?FALSE?);
}
}
catch(?CFileException?*e?){
e->Delete();
delete?[]?pDib;
return(?FALSE?);
}
cf.Close();
if(?m_pDib?!=?NULL?)
delete?m_pDib;
?
if?(BFH.bfReserved1?!=?0)??????????//含有隱藏信息,保存其大小
{
if?(BFH.bfReserved2?==?0)
embfile_size?=?BFH.bfReserved1;
else
embfile_size?=?BFH.bfReserved1?+?65535;
}
m_pDib?=?pDib;
m_dwDibSize?=?dwDibSize;
m_pBIH?=?(BITMAPINFOHEADER?*)?m_pDib;
m_pPalette?=
(RGBQUAD?*)?&m_pDib[sizeof(BITMAPINFOHEADER)];
m_nPaletteEntries?=?1?<biBitCount;
if(?m_pBIH->biBitCount?>?8?)?????????
m_nPaletteEntries?=?0;
else?if(?m_pBIH->biClrUsed?!=?0?)
m_nPaletteEntries?=?m_pBIH->biClrUsed;
m_pDibBits?=?????????????????????
&m_pDib[sizeof(BITMAPINFOHEADER)+
m_nPaletteEntries*sizeof(RGBQUAD)];
if(?m_Palette.GetSafeHandle()?!=?NULL?)
m_Palette.Deleteobject();
if(?m_nPaletteEntries?!=?0?){??????
LOGPALETTE?*pLogPal?=?(LOGPALETTE?*)?new?char
[sizeof(LOGPALETTE)+
m_nPaletteEntries*sizeof(PALETTEENTRY)];
if(?pLogPal?!=?NULL?){
pLogPal->palVersion?=?0x300;
pLogPal->palNumEntries?=?m_nPaletteEntries;
for(?int?i=0;?i pLogPal->palPalEntry[i].peRed?=
m_pPalette[i].rgbRed;
pLogPal->palPalEntry[i].peGreen?=
m_pPalette[i].rgbGreen;
pLogPal->palPalEntry[i].peBlue?=
m_pPalette[i].rgbBlue;
}
m_Palette.CreatePalette(?pLogPal?);
delete?[]?pLogPal;
}
}
m_BitCount?=?24;?????????????//24位位圖
p?=?m_pDibBits;??????????????//指向位圖數(shù)據(jù)的指針,用來(lái)執(zhí)行處理操作用
bitmap_size?=?m_dwDibSize?-?(m_pDibBits?-?m_pDib);//真正的位圖數(shù)據(jù)的大小(即除頭結(jié)構(gòu)外)
tag?=?BFH.bfReserved1;
return(?TRUE?);
}
BOOL?CDib::Save(?const?char?*pszFilename?)?//保存含有隱藏信息的bmp
{
if(?m_pDib?==?NULL?)
return(?FALSE?);
CFile?cf;
if(?!cf.Open(?pszFilename
CFile::modeCreate?|?CFile::modeWrite?)?)
return(?FALSE?);
try{
BITMAPFILEHEADER?BFH;
memset(?&BFH?0?sizeof(?BITMAPFILEHEADER?)?);
BFH.
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????8128??2004-06-05?11:49??數(shù)字隱寫(xiě)技術(shù)\DIB.cpp
?????文件???????1028??2004-06-05?11:21??數(shù)字隱寫(xiě)技術(shù)\DIB.h
?????文件???????2553??2004-06-04?14:26??數(shù)字隱寫(xiě)技術(shù)\MainFrm.cpp
?????文件???????1598??1998-01-01?12:26??數(shù)字隱寫(xiě)技術(shù)\MainFrm.h
?????文件???????4334??2004-06-05?09:46??數(shù)字隱寫(xiě)技術(shù)\MyImageWork.cpp
?????文件???????4843??2004-06-05?11:44??數(shù)字隱寫(xiě)技術(shù)\MyImageWork.dsp
?????文件????????547??2003-05-08?16:03??數(shù)字隱寫(xiě)技術(shù)\MyImageWork.dsw
?????文件???????1411??2003-05-08?15:42??數(shù)字隱寫(xiě)技術(shù)\MyImageWork.h
?????文件??????10325??2004-06-05?11:39??數(shù)字隱寫(xiě)技術(shù)\MyImageWork.rc
?????文件???????1842??2003-05-08?15:42??數(shù)字隱寫(xiě)技術(shù)\MyImageWorkDoc.cpp
?????文件???????1530??2003-05-08?15:42??數(shù)字隱寫(xiě)技術(shù)\MyImageWorkDoc.h
?????文件???????6607??2004-06-05?11:32??數(shù)字隱寫(xiě)技術(shù)\MyImageWorkView.cpp
?????文件???????2224??2004-06-05?11:12??數(shù)字隱寫(xiě)技術(shù)\MyImageWorkView.h
?????文件???????4431??2003-05-08?15:42??數(shù)字隱寫(xiě)技術(shù)\ReadMe.txt
?????文件???????1339??2004-06-05?11:39??數(shù)字隱寫(xiě)技術(shù)\resource.h
?????文件????????213??2003-05-08?15:42??數(shù)字隱寫(xiě)技術(shù)\StdAfx.cpp
?????文件???????1054??2003-05-08?15:42??數(shù)字隱寫(xiě)技術(shù)\StdAfx.h
?????文件??????82944??2009-09-11?09:23??數(shù)字隱寫(xiě)技術(shù)\MyImageWork.ncb
?????文件???????2000??2009-09-11?09:22??數(shù)字隱寫(xiě)技術(shù)\MyImageWork.plg
?????文件????????403??2003-05-08?15:42??數(shù)字隱寫(xiě)技術(shù)\res\MyImageWork.rc2
?????文件???????1078??2003-05-08?15:42??數(shù)字隱寫(xiě)技術(shù)\res\MyImageWorkDoc.ico
?????文件???????1078??2004-06-05?11:38??數(shù)字隱寫(xiě)技術(shù)\res\SECUR02A.ICO
????..A.SH.?????16384??2004-06-05?11:40??數(shù)字隱寫(xiě)技術(shù)\res\Thumbs.db
?????文件?????263168??2009-09-11?09:22??數(shù)字隱寫(xiě)技術(shù)\Debug\vc60.idb
?????文件???????4720??2009-09-11?09:22??數(shù)字隱寫(xiě)技術(shù)\Debug\MyImageWork.res
?????文件????5507044??2009-09-11?09:22??數(shù)字隱寫(xiě)技術(shù)\Debug\MyImageWork.pch
?????文件?????454656??2009-09-11?09:22??數(shù)字隱寫(xiě)技術(shù)\Debug\vc60.pdb
?????文件?????105467??2009-09-11?09:22??數(shù)字隱寫(xiě)技術(shù)\Debug\StdAfx.obj
?????文件??????45046??2009-09-11?09:22??數(shù)字隱寫(xiě)技術(shù)\Debug\MyImageWorkView.obj
?????文件??????14803??2009-09-11?09:22??數(shù)字隱寫(xiě)技術(shù)\Debug\MyImageWorkDoc.obj
............此處省略13個(gè)文件信息
評(píng)論
共有 條評(píng)論