资源简介
数字水印(Digital Watermarking)技术是将一些标识信息(即数字水印)直接嵌入数字载体当中(包括多媒体、文档、软件等)或是间接表示(修改特定区域的结构),且不影响原载体的使用价值,也不容易被探知和再次修改。但可以被生产方识别和辨认。通过这些隐藏在载体中的信息,可以达到确认内容创建者、购买者、传送隐秘信息或者判断载体是否被篡改等目的。数字水印是实现版权保护的有效办法,是信息隐藏技术研究领域的重要分支和研究方向。
代码片段和文件信息
// 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 << m_pBIH->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; //指向位图数据的指针,用来执行处理操作用
bitmap_size = m_dwDibSize - (m_pDibBits - m_pDib);//真正的位图数据的大小(即除头结构外)
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.
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8128 2004-06-05 11:49 数字隐写技术\DIB.cpp
文件 1028 2004-06-05 11:21 数字隐写技术\DIB.h
文件 2553 2004-06-04 14:26 数字隐写技术\MainFrm.cpp
文件 1598 1998-01-01 12:26 数字隐写技术\MainFrm.h
文件 4334 2004-06-05 09:46 数字隐写技术\MyImageWork.cpp
文件 4843 2004-06-05 11:44 数字隐写技术\MyImageWork.dsp
文件 547 2003-05-08 16:03 数字隐写技术\MyImageWork.dsw
文件 1411 2003-05-08 15:42 数字隐写技术\MyImageWork.h
文件 10325 2004-06-05 11:39 数字隐写技术\MyImageWork.rc
文件 1842 2003-05-08 15:42 数字隐写技术\MyImageWorkDoc.cpp
文件 1530 2003-05-08 15:42 数字隐写技术\MyImageWorkDoc.h
文件 6607 2004-06-05 11:32 数字隐写技术\MyImageWorkView.cpp
文件 2224 2004-06-05 11:12 数字隐写技术\MyImageWorkView.h
文件 4431 2003-05-08 15:42 数字隐写技术\ReadMe.txt
文件 1339 2004-06-05 11:39 数字隐写技术\resource.h
文件 213 2003-05-08 15:42 数字隐写技术\StdAfx.cpp
文件 1054 2003-05-08 15:42 数字隐写技术\StdAfx.h
文件 82944 2009-09-11 09:23 数字隐写技术\MyImageWork.ncb
文件 2000 2009-09-11 09:22 数字隐写技术\MyImageWork.plg
文件 403 2003-05-08 15:42 数字隐写技术\res\MyImageWork.rc2
文件 1078 2003-05-08 15:42 数字隐写技术\res\MyImageWorkDoc.ico
文件 1078 2004-06-05 11:38 数字隐写技术\res\SECUR02A.ICO
..A.SH. 16384 2004-06-05 11:40 数字隐写技术\res\Thumbs.db
文件 263168 2009-09-11 09:22 数字隐写技术\Debug\vc60.idb
文件 4720 2009-09-11 09:22 数字隐写技术\Debug\MyImageWork.res
文件 5507044 2009-09-11 09:22 数字隐写技术\Debug\MyImageWork.pch
文件 454656 2009-09-11 09:22 数字隐写技术\Debug\vc60.pdb
文件 105467 2009-09-11 09:22 数字隐写技术\Debug\StdAfx.obj
文件 45046 2009-09-11 09:22 数字隐写技术\Debug\MyImageWorkView.obj
文件 14803 2009-09-11 09:22 数字隐写技术\Debug\MyImageWorkDoc.obj
............此处省略13个文件信息
相关资源
- 数字水印提取DCT&DWT;的代码加运行文档
- 数字水印的嵌入与检测 WaterMark 1.0
- 基于IWT和HVS的彩色图像数字水印算法
- 信息隐藏与数字水印
- Digital Watermarking and Steganography第二版
- 论文研究-基于QR分解的Contourlet域抗几
- DWT数字水印嵌入与提取代码 毕业设计
- 数字水印必备工具stirmark
- 一个简单的基于数字水印的图像鉴定
- 信息隐藏技术—隐写术与数字水印北
- NEC算法数字水印_源代码
- 信息隐藏标准测试图片库
- 数字水印 经典代码
- 基于置乱加密的小波域数字图像水印
- VC实现的数字水印图像处理
- 信息隐藏与数字水印实验教程
- 基于dwt的数字水印彩色图像水印的嵌
- 信息隐藏研究与发展综述
- DCT域图像数字水印算法的分析和实现
- DCT域图像数字水印算法的分析和实现
- 数字水印技术的研究现状及进展.pdf
- RS隐写分析算法 信息隐藏与数字水印
- 图像数字图像课程设计--数字水印设计
- 论文研究-基于质心检测算法的文本数
- 基于小波变换的数字水印技术
- 基于码的扩频数字水印算法
- DCT域自适应混沌加密的二值图像数字
- 基于奇异值与提升小波的彩色图像水
- 信息隐藏源代码和数字水印介绍
- 一种基于整数小波变换的数字水印算
评论
共有 条评论