利用LSB算法,完成的数字水印的嵌入和提取程序,VC++代码。
用VC6.0编译。如果转化为vs会报错,需要自己修改调试。
这个程序也是从CSDN上得到的,会有其他不同名字但是同内容的下载源存在。
当初花了好多积分下的都是一样的东西心疼我的积分泪。
希望能给需要的朋友提供到帮助。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2006-08-21 16:59 数字水印的嵌入和提取(vc)
文件 4429 2006-03-29 18:54 数字水印的嵌入和提取(vc)Dib.cpp
文件 964 2006-03-29 18:16 数字水印的嵌入和提取(vc)Dib.h
目录 0 2006-08-21 16:59 数字水印的嵌入和提取(vc)Pic
文件 23610 2006-08-10 13:15 数字水印的嵌入和提取(vc)Pic11.bmp
文件 196662 1998-02-03 17:48 数字水印的嵌入和提取(vc)PicApple.bmp
文件 447390 1999-03-16 03:57 数字水印的嵌入和提取(vc)PicBoatCake.BMP
文件 921654 1999-03-16 03:46 数字水印的嵌入和提取(vc)PicFruit.BMP
文件 138514 2002-11-29 19:41 数字水印的嵌入和提取(vc)Piclena.bmp
文件 23610 2006-08-10 13:18 数字水印的嵌入和提取(vc)PicMarkWater.bmp
文件 177356 2003-04-28 09:46 数字水印的嵌入和提取(vc)Picplane24.bmp
文件 113334 2000-07-09 20:11 数字水印的嵌入和提取(vc)Picstreet.bmp
..A.SH. 125952 2006-08-15 11:03 数字水印的嵌入和提取(vc)PicThumbs.db
目录 0 2006-08-21 16:59 数字水印的嵌入和提取(vc)
es
文件 1078 2006-04-01 12:48 数字水印的嵌入和提取(vc)
esFACE.ICO
..A.SH. 10240 2006-08-15 11:03 数字水印的嵌入和提取(vc)
esThumbs.db
文件 1078 2006-03-20 22:23 数字水印的嵌入和提取(vc)
esWaterMark.ico
文件 401 2006-03-20 22:23 数字水印的嵌入和提取(vc)
esWaterMark.rc2
文件 1101 2006-04-02 20:34 数字水印的嵌入和提取(vc)Resource.h
文件 211 2006-03-20 22:23 数字水印的嵌入和提取(vc)StdAfx.cpp
文件 1054 2006-03-20 22:23 数字水印的嵌入和提取(vc)StdAfx.h
文件 1483 2006-08-12 14:11 数字水印的嵌入和提取(vc)WaterMark.clw
文件 2105 2006-03-20 22:23 数字水印的嵌入和提取(vc)WaterMark.cpp
文件 4421 2006-04-01 14:03 数字水印的嵌入和提取(vc)WaterMark.dsp
文件 541 2006-03-20 22:23 数字水印的嵌入和提取(vc)WaterMark.dsw
文件 1357 2006-03-20 22:23 数字水印的嵌入和提取(vc)WaterMark.h
文件 5971 2006-04-02 20:48 数字水印的嵌入和提取(vc)WaterMark.rc
文件 21348 2006-04-02 21:58 数字水印的嵌入和提取(vc)WaterMarkDlg.cpp
文件 2855 2006-04-02 21:33 数字水印的嵌入和提取(vc)WaterMarkDlg.h
文件 21304 2006-08-11 15:58 数字水印的嵌入和提取(vc)WaterMark.aps
............此处省略6个文件信息
// Dib.cpp: implementation of the CDib class.
//
//////////////////////////////////////////////////////////////////////
#include “StdAfx.h“
#include “Dib.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDib::CDib()
{
m_hDrawDib=NULL;
m_pDib=NULL;
}
CDib::~CDib()
{
Close();
}
void CDib::Draw(CDC *pDCint nWidth int nHeight)
{
if(m_pDib!=NULL)
{
ASSERT(IsValid());
DrawDibRealize(m_hDrawDibpDC->GetSafeHdc()TRUE);
DrawDibDraw(m_hDrawDibpDC->GetSafeHdc()
0 //desktop left
0 //desktop top
nWidth
nHeight
(BITMAPINFOHEADER *)m_pDib
(LPVOID) GetBits()
0 //source left
0 //source top
((BITMAPINFOHEADER *)m_pDib)->biWidth
((BITMAPINFOHEADER *)m_pDib)->biHeight
DDF_BACKGROUNDPAL);
}
}
CSize CDib::GetSize()
{
return CSize(((BITMAPINFOHEADER *)m_pDib)->biWidth
((BITMAPINFOHEADER *)m_pDib)->biHeight);
}
LONG CDib::GetWidth()
{
return ((BITMAPINFOHEADER *)m_pDib)->biWidth;
}
LONG CDib::GetHeight()
{
return ((BITMAPINFOHEADER *)m_pDib)->biHeight;
}
void CDib::Close()
{
if(m_hDrawDib!=NULL)
{
DrawDibClose(m_hDrawDib);
m_hDrawDib=NULL;
}
if(m_pDib!=NULL)
{
delete m_pDib;
m_pDib=NULL;
}
}
BOOL CDib::Open(const char * pzFileName)
{
// BITMAPFILEHEADER bmpFileHeader;
CFile file;
int nBmpFileHeaderSize;
Close();
//drawdibopen initialize the diradib library and
//returns a handle for all drawdib operations
if(!(m_hDrawDib=DrawDibOpen()))
goto exit;
//open and read the DIB file header
nBmpFileHeaderSize=sizeof(BITMAPFILEHEADER);
if(!file.Open(pzFileNameCFile::modeRead | CFile::typeBinary))
goto exit;
if(file.Read((void *)&bmpFileHeadernBmpFileHeaderSize)!=(UINT)nBmpFileHeaderSize)
goto failure;
//validate the DIB file header by checking the first
//two characters for the signature “BM“
if(bmpFileHeader.bfType!=*((WORD *)“BM“))
goto failure;
//allocate a big chuck of global memory to store the DIB
m_pDib=(BYTE *)new char [bmpFileHeader.bfSize-nBmpFileHeaderSize];
//allocate memory fail
if(!m_pDib)
goto failure;
//read the dib into the buffer at a time using ReadHuge
file.ReadHuge(m_pDibbmpFileHeader.bfSize-nBmpFileHeaderSize);
if(((BITMAPINFOHEADER *)m_pDib)->biSizeImage==0)
{
//the application that create this bitmap didn‘t fill
//in the biSizeImage field. Let‘s fill it
//in even though the DrawDib * functions don‘t need it.
BITMAPINFOHEADER *pDib=(BITMAPINFOHEADER *)m_pDib;
//scan lines must be DWord aligned hence the strange bit stuff
pDib->biSizeImage=((((pDib->biWidth*pDib->biBitCount)+31)&~31)>>3)*pDib->biHeight;
}
m_pDibBits=GetBits();
file.Close();
ret
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2006-08-21 16:59 数字水印的嵌入和提取(vc)
文件 4429 2006-03-29 18:54 数字水印的嵌入和提取(vc)Dib.cpp
文件 964 2006-03-29 18:16 数字水印的嵌入和提取(vc)Dib.h
目录 0 2006-08-21 16:59 数字水印的嵌入和提取(vc)Pic
文件 23610 2006-08-10 13:15 数字水印的嵌入和提取(vc)Pic11.bmp
文件 196662 1998-02-03 17:48 数字水印的嵌入和提取(vc)PicApple.bmp
文件 447390 1999-03-16 03:57 数字水印的嵌入和提取(vc)PicBoatCake.BMP
文件 921654 1999-03-16 03:46 数字水印的嵌入和提取(vc)PicFruit.BMP
文件 138514 2002-11-29 19:41 数字水印的嵌入和提取(vc)Piclena.bmp
文件 23610 2006-08-10 13:18 数字水印的嵌入和提取(vc)PicMarkWater.bmp
文件 177356 2003-04-28 09:46 数字水印的嵌入和提取(vc)Picplane24.bmp
文件 113334 2000-07-09 20:11 数字水印的嵌入和提取(vc)Picstreet.bmp
..A.SH. 125952 2006-08-15 11:03 数字水印的嵌入和提取(vc)PicThumbs.db
目录 0 2006-08-21 16:59 数字水印的嵌入和提取(vc)
es
文件 1078 2006-04-01 12:48 数字水印的嵌入和提取(vc)
esFACE.ICO
..A.SH. 10240 2006-08-15 11:03 数字水印的嵌入和提取(vc)
esThumbs.db
文件 1078 2006-03-20 22:23 数字水印的嵌入和提取(vc)
esWaterMark.ico
文件 401 2006-03-20 22:23 数字水印的嵌入和提取(vc)
esWaterMark.rc2
文件 1101 2006-04-02 20:34 数字水印的嵌入和提取(vc)Resource.h
文件 211 2006-03-20 22:23 数字水印的嵌入和提取(vc)StdAfx.cpp
文件 1054 2006-03-20 22:23 数字水印的嵌入和提取(vc)StdAfx.h
文件 1483 2006-08-12 14:11 数字水印的嵌入和提取(vc)WaterMark.clw
文件 2105 2006-03-20 22:23 数字水印的嵌入和提取(vc)WaterMark.cpp
文件 4421 2006-04-01 14:03 数字水印的嵌入和提取(vc)WaterMark.dsp
文件 541 2006-03-20 22:23 数字水印的嵌入和提取(vc)WaterMark.dsw
文件 1357 2006-03-20 22:23 数字水印的嵌入和提取(vc)WaterMark.h
文件 5971 2006-04-02 20:48 数字水印的嵌入和提取(vc)WaterMark.rc
文件 21348 2006-04-02 21:58 数字水印的嵌入和提取(vc)WaterMarkDlg.cpp
文件 2855 2006-04-02 21:33 数字水印的嵌入和提取(vc)WaterMarkDlg.h
文件 21304 2006-08-11 15:58 数字水印的嵌入和提取(vc)WaterMark.aps
............此处省略6个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)