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

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-05
  • 語言: 其他
  • 標簽: bmp??位圖??24??

資源簡介

封裝的一個將24BitCount 的bmp 轉換為16bitCount 或8bitcount 或4Bitcount類。并保存。此接口只需要輸入要轉換圖片的路徑就可以獲得轉換后圖片的bitmap。此接口在兼容各種平臺

資源截圖

代碼片段和文件信息

//?BitTransform.cpp:?implementation?of?the?CBitTransform?class.
//
//////////////////////////////////////////////////////////////////////

#include?“stdafx.h“
#include?“BitTrans.h“
#include?“BitTransform.h“

#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif

#pragma?pack(1)
typedef?struct?_BITMAPFILEHEADER{
WORD????bfType;?
DWORD???bfSize;?
WORD????bfReserved1;?
WORD????bfReserved2;?
DWORD???bfOffBits;?
}_BITMAPFILEHEADER;?

//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////

CBitTransform::CBitTransform()
{

}

CBitTransform::~CBitTransform()
{

}

BOOL?CBitTransform::Bit24ToBit16(HBITMAP?&hBitmapchar?*szOldBmpNamechar?*szNewBmpName)
{
int?nPaletteSize?=0;
bool?bFileRead?=?false;
char?*lpbuff??=?NULL;
BITMAPFILEHEADER*?pBmpFileHeader?=?NULL;
BITMAPINFOHEADER*?pBmpInfoHeader?=?NULL;

FILE*?bitmapFile;??
//CFileException?fileException;??
//if(!bitmapFile.Open(szOldBmpNameCFile::modeRead&fileException))?
bitmapFile?=?fopen(szOldBmpName“r+b“);
if(bitmapFile?==?NULL)
{??
TRACE(“Can‘t?open?file?%s\n“szOldBmpName/*fileException.m_cause*/);
return?false;
}?

int?bitmapfileheaderLen?=?sizeof(BITMAPFILEHEADER);
pBmpFileHeader=(BITMAPFILEHEADER*)?new?char?[bitmapfileheaderLen];//給文件信息頭分配內存??
//bitmapFile.Read(pBmpFileHeaderbitmapfileheaderLen);//讀入文件信息頭信息?
fread(pBmpFileHeaderbitmapfileheaderLen1bitmapFile);

int?bitmapinfoheader?=?sizeof(BITMAPINFOHEADER);
pBmpInfoHeader=(BITMAPINFOHEADER*)?new?char?[bitmapinfoheader];//給BMP信息頭分配內存??
//bitmapFile.Read(pBmpInfoHeaderbitmapinfoheader);?
fread(pBmpInfoHeaderbitmapinfoheader1bitmapFile);

if(pBmpFileHeader->bfType!=0x4D42)//判斷文件是不是位圖文件??
{??
TRACE((“This?is?not?a?bitmap?file!“));??
bFileRead=FALSE;??
//bitmapFile.Close();
fclose(bitmapFile);
delete?[]pBmpFileHeader;
delete?[]pBmpInfoHeader;
return?false;??
}??
if(pBmpInfoHeader->biCompression!=0)//判斷圖像是不是壓縮的??
{??
AfxMessageBox(“This?system?only?support?Un-compression!!“);??
fclose(bitmapFile);
delete?[]pBmpFileHeader;
delete?[]pBmpInfoHeader;
return?false;?
}??
DWORD?dwbmp;
switch(pBmpInfoHeader->biBitCount)//判斷顏色的位數??
{??
case?1:??
nPaletteSize=2;??
break;??
case?4:??
nPaletteSize=16;??
break;??
case?8:??
nPaletteSize=256;??
break;
case?24:??
nPaletteSize=0;//當為真彩色時沒有顏色表,所以為0?
dwbmp?=?(pBmpInfoHeader->biWidth*24+31)/32*4*pBmpInfoHeader->biHeight;
lpbuff?=?new?char[dwbmp];
//bitmapFile.Seek(bitmapfileheaderLen+bitmapinfoheaderSEEK_SET);
//bitmapFile.Read(lpbuffdwbmp);
fread(lpbuffdwbmp1bitmapFile);
Bit24ToBit16Ex(hBitmap16pBmpInfoHeader->biWidthpBmpInfoHeader->biHeight(char*)lpbuffszNewBmpName);
break;??
default:??
TRACE(“This?color?is?not?valid!“);???
}

delete?[]pBm

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

?????文件???????7542??2010-09-12?21:38??BitTransform\BitTransform.cpp

?????文件???????1128??2010-09-12?23:28??BitTransform\BitTransform.h

?????目錄??????????0??2010-09-14?22:03??BitTransform

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

?????????????????8670????????????????????3


評論

共有 條評論