?? ftdib.h
字號:
// FTDib.h: interface for the FTDib class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_FTDIB_H__DDDAC797_13DB_41EE_84C3_BD8488AA20DD__INCLUDED_)
#define AFX_FTDIB_H__DDDAC797_13DB_41EE_84C3_BD8488AA20DD__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#pragma pack(1)
//-------------------------------------------
// 常用類型
//-------------------------------------------
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef unsigned char BYTE;
//-------------------------------------------
// bmp文件頭
//-------------------------------------------
struct BitmapFileHeader /* bf */
{
WORD bfType; //位圖文件類型,必須為BMP
DWORD bfSize; //位圖文件大小,以字節為單位
WORD bfReserved; //位圖文件保留字,必須為0
WORD bfReservedEx; //位圖文件保留字,必須為0
DWORD bfOffBits; //位圖數據的起始位置,相對于位圖文件頭
}; //的偏移量,以字節為單位
//------------------------------------------
// bmp信息頭
//------------------------------------------
struct BitmapInfoHeader /* bi */
{
DWORD biSize; //本結構所占字節數
long biWidth; //位圖寬度,以像素為單位
long biHeight; //位圖高度,以像素為單位
WORD biPlanes; //位圖設備級別為1
WORD biBitPerPixel; //每像素所需的位數,必須是1(雙色),4(16色),8(256色)或24(真彩色)
DWORD biCompression; //壓縮類型,0(不壓縮),1(BI_REL8),2(BI_REL4)
DWORD biDataSize; //位圖數據區的大小,以字節為單位
long biHResolution; //水平分辨率
long biVResolution; //垂直分辨率
DWORD biColors; //實際使用顏色數
DWORD biImprotantColors; //顯示過程中的重要顏色數
};
//------------------------------------------
// 顏色表元素結構
//------------------------------------------
struct RGB_Element /* rgb */
{
BYTE rgbBlue; //藍色亮度
BYTE rgbGreen; //綠色亮度
BYTE rgbRed; //紅色亮度
BYTE rgbReserved; //保留,必須為0
};
//------------------------------------------
// bmp信息
//------------------------------------------
struct BitmapInfo /* bmi */
{
BitmapInfoHeader bmiHeader; //位圖信息頭
RGB_Element bmiColors[1]; //顏色表
};
//-------------------------------------------
class FTDib
{
private:
RGB_Element *m_pRGB; //指向顏色表
BYTE *m_pData,*m_pData2; //
unsigned int m_numberOfColors; //顏色數
bool m_valid; //
BitmapFileHeader *m_pBitmapFileHeader; //指向文件頭
BitmapInfoHeader *m_pBitmapInfoHeader; //指向信息頭
BitmapInfo *m_pBitmapInfo; //
int byBitCount; //
DWORD dwWidthBytes; //
BYTE *pDib; //指向數據區
DWORD size; //顏色表和數據區的總大小
public:
FTDib();
~FTDib();
//基本屬性和操作
char m_fileName[256]; //需要載入的文件的名字
char* GetFileName();
bool IsValid();
DWORD GetSize();
unsigned int GetWidth();
unsigned int GetHeight();
unsigned int GetNumberOfColors();
RGB_Element* GetRGB();
BYTE* GetData();
BYTE* GetData2();
DWORD GetDibWidthBytes();
BitmapInfo* GetInfo();
WORD PaletteSize(BYTE*lpDib);
WORD DIBNumColors(BYTE*lpDib);
void SaveFile(CString filename);
void LoadFile(CString dibFileName);
//擴展屬性和操作
//void GradeToRGB();
//void RGBToGrade();
int LSBCoder(CString textFileName); //LSB信息隱藏
void LSBDecoder(CString dibFileName); //讀取信息
};
#endif// !defined(AFX_FTDIB_H__027C7E5C_83DF_4725_B8D6_10202075E8BF__INCLUDED_)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -