91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-11
  • 語言: C/C++
  • 標簽: LSB??數據隱藏??

資源簡介

基于LSB的圖片數據隱藏c++類,可以在Bmp文件中隱藏文件

資源截圖

代碼片段和文件信息

/*********************************************
*??功能:基于LSB的BMP文件信息隱藏
*??作者:aikesiluoente
*??構建日期:?2010/6/10
*??本程序參考自:“foxtail-處理bmp圖象-2008/3/4”
???在此表示感謝
*********************************************/
#include?“Bmp24.h“
#include?
#include?
#include?

Bmp24::Bmp24(void)
{
_pbmfh?=?new?tagBITMAPFILEHEADER;
_pbmih?=?new?tagBITMAPINFOHEADER;
_pbmd?=?NULL;
_size?=?0;
}

Bmp24::~Bmp24(void)
{
delete?_pbmfh;
delete?_pbmih;
if?(_pbmd)
{
delete?_pbmd;
}
}

//載入BMP文件
void?Bmp24::LoadFile(const?char?*filename)
{
ifstream?InFile;
InFile.open(filename?ios::in?|?ios::binary);

InFile.read((char*)_pbmfh?sizeof(tagBITMAPFILEHEADER));
cout?< ?< InFile.read((char*)_pbmih?sizeof(tagBITMAPINFOHEADER));
cout?<
//直接定位BMP數據區,跳過調色板
_size?=?_pbmfh->bfSize?-?_pbmfh->bfOffBits;
_pbmd?=?new?BYTE[_size];
InFile.read((char*)_pbmd?_size);
cout?< InFile.close();
cout?< ?<}

//保存BMP文件
void?Bmp24::SaveFile(const?char?*filename)
{
ofstream?OutFile;
OutFile.open(filename?ios::out?|?ios::binary);

OutFile.write((char*)_pbmfh?sizeof(tagBITMAPFILEHEADER));
cout?< ?< OutFile.write((char*)_pbmih?sizeof(tagBITMAPINFOHEADER));
cout?< OutFile.write((char*)_pbmd?_size);
cout?< OutFile.close();
cout?< ?<}

//嵌入文本文件
void?Bmp24::embedTxt(const?char?*filename)
{
ifstream?TxtFile;
TxtFile.open(filename?ios::in?|?ios::binary);
TxtFile.seekg(0?TxtFile.end);
DWORD?TxtFileLength?=?TxtFile.tellg();
if?(_size? {
return?;
}

cout?< BYTE?*pTxtFile?=?new?BYTE[TxtFileLength];
TxtFile.seekg(0?TxtFile.beg);
TxtFile.read((char*)pTxtFile?TxtFileLength);
TxtFile.close();

for?(int?i?=?0?k?=?0;?i? {
for?(int?j?=?0;?j? {
if?((pTxtFile[i]?>>?j?&?0x01)?==?0)
_pbmd[k+32]?&=?0xfe;
else
_pbmd[k+32]?|=?0x01;
++k;
}
}

for?(int?i?=?0;?i? {
if?((TxtFileLength?>>?i?&?0x00000001)?==?0)
_pbmd[i]?&=?0xfe;
else
_pbmd[i]?|=?0x01;
}
delete?pTxtFile;
cout?<bedding?file?OK!“?<}

//提取文本文件
void?Bmp24::ExtractTxt(const?char?*filename)
{
DWORD?TxtFileLength?=?0x00000000;
for?(int?i?=?0;?i? {
if?((_pbmd[i]?&?0x01)?==?0)
TxtFileLength?&=?0x7fffffff;
else
TxtFileLength?|=?0x80000000;

if?(i? TxtFileLength?>>=?1;
}
cout?<
BYTE?*pTxtFile?=?new?BYTE[TxtFileLength];
for?(int?i?=?0?k?=?0;?i? {
if?(i?&&?i?%?8?==?0)
++k;
if?((_pbm

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????1163??2010-06-13?15:07??Test.cpp

?????文件???????3403??2010-06-13?15:07??Bmp24.cpp

?????文件???????1281??2010-10-27?12:42??Bmp24.h

?????文件???????4028??2010-10-26?21:37??LSB.vcproj

-----------?---------??----------?-----??----

?????????????????9875????????????????????4


評論

共有 條評論