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

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-13
  • 語言: C/C++
  • 標(biāo)簽: BMP??圖片??C++??

資源簡介

BMP圖像文件讀寫操作類,C++實(shí)現(xiàn),支持24位位圖。適合學(xué)習(xí)用。

資源截圖

代碼片段和文件信息

//---------------------------------------------------------------------------

#pragma?hdrstop

#include?“BMPHelper.h“
//---------------------------------------------------------------------------
#pragma?package(smart_init)
//---------------------------------------------------------------------------

TBMPHelper::TBMPHelper(void)
{
InitBMPFile();
}
//---------------------------------------------------------------------------

TBMPHelper::~TBMPHelper(void)
{
if(NULL?!=?m_BMPFile->BMPData)
{
delete?[]m_BMPFile->BMPData;
m_BMPFile->BMPData?=?NULL;
}

delete?m_BMPFile;
}
//---------------------------------------------------------------------------

void?TBMPHelper::InitBMPFile(void)
{
????m_BMPFile?=?new?BITMAPFILE;
memset(&(m_BMPFile->FileHeader)?0?sizeof(m_BMPFile->FileHeader));
memset(&(m_BMPFile->InfoHeader)?0?sizeof(m_BMPFile->InfoHeader));
m_BMPFile->BMPData?=?NULL;

m_RealImageWidth????=?0;
m_RealImageHeight???=?0;
m_RealImageDataSize?=?0;
}
//---------------------------------------------------------------------------

int?TBMPHelper::OpenBMPFile(const?wchar_t*?wszFileName)
{
????wchar_t?wszOpenMode[]?=?{‘r‘‘b‘};
FILE?*pFile?=?_wfopen(wszFileName?wszOpenMode);
if(NULL?==?pFile)
????{
return?1;
}

//?加載位圖文件頭
fseek(pFile?0?SEEK_SET);
fread(&(m_BMPFile->FileHeader)?sizeof(m_BMPFile->FileHeader)?1?pFile);

//?不是有效的BMP位圖文件
if(0x4d42?!=?m_BMPFile->FileHeader.bfType)
{
fclose(pFile);
return?2;
????}

//?加載位圖信息頭
fseek(pFile?sizeof(m_BMPFile->FileHeader)?SEEK_SET);
fread(&(m_BMPFile->InfoHeader)?sizeof(m_BMPFile->InfoHeader)?1?pFile);

//?僅支持24位真彩色圖像
if(24?!=?m_BMPFile->InfoHeader.biBitCount)
{
fclose(pFile);
return?3;
}

//?計(jì)算位圖數(shù)據(jù)大小,這里計(jì)算數(shù)據(jù)需要檢測高度值的正負(fù)性
m_RealImageWidth???=?m_BMPFile->InfoHeader.biWidth;
m_RealImageHeight??=?m_BMPFile->InfoHeader.biHeight?>?0???m_BMPFile->InfoHeader.biHeight?:?-(m_BMPFile->InfoHeader.biHeight);
WORD?BitsPerPixel?=?m_BMPFile->InfoHeader.biBitCount;

DWORD?LineByteCnt?=?(m_RealImageWidth*BitsPerPixel)/8;

m_RealImageDataSize?=?LineByteCnt*m_RealImageHeight;
m_BMPFile->BMPData?=?new?BYTE[m_RealImageDataSize];

fseek(pFile?m_BMPFile->FileHeader.bfOffBits?SEEK_SET);

//?不需要四字節(jié)對齊處理
if(0?==?LineByteCnt%4)
{
//?加載位圖數(shù)據(jù)
fread(m_BMPFile->BMPData?m_RealImageDataSize?1?pFile);
}
else
{
BYTE?*WTDataBuf?=?m_BMPFile->BMPData;
LONG?WTSize?=?3*m_RealImageWidth;
int?FillOffset?=?4?-?LineByteCnt%4;

for(int?iY=0;?iY {
//?加載位圖數(shù)據(jù)
fread(WTDataBuf?WTSize?1?pFile);
WTDataBuf?+=?WTSize;
fseek(pFile?FillOffset?SEEK_CUR);
}
}

fclose(pFile);

return?0;
}
//---------------------------------------------------------------------------

int?TBMPHelper::SaveToBMPFile(const?wchar_t*?wszFileName)
{
if(NULL?==?m_BMPFile->BMPData)
{
return?1;
}

wchar_t?wszOpenMode[]?=?{‘w‘‘b‘};
FILE?*pFile?=?_wfope

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

?????文件???????5195??2017-10-21?09:52??BMPHelper\BMPHelper.cpp

?????文件???????3188??2017-11-04?22:57??BMPHelper\BMPHelper.h

?????目錄??????????0??2017-10-21?10:00??BMPHelper

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

?????????????????8383????????????????????3


評論

共有 條評論