📄 image.h
字号:
/***************************************************************/
/*文件名: image.h */
/*文件描述: */
/*相关文件: global.h, global.cpp, image.cpp */
/*主要函数: */
/*提交日期: 作 者:刘岩、山世光 */
/*编 辑 器: Visual C++ */
/*版权:哈尔滨工业大学智能接口实验室 中科院计算所数字媒体实验室*/
/*版权说明:任何使用必须保留版权信息和历史纪录信息 */
/*修改纪录: */
/*日 期 版本 修改人 修改内容 */
/*03/22/1999 2.0 山世光 --------- */
/*05/22/2000 3.0 山世光 --------- */
/***************************************************************/
#ifndef _IMAGE_H_
#define _IMAGE_H_
struct dis_cr_cb {
double distance;
BYTE cr;
BYTE cb;
};
class CImage : public CObject
{
DECLARE_SERIAL(CImage)
private:
DWORD Transform(WORD width);
DWORD ByteNumForOneLine(WORD nDIBWidth, int nBpp);
public:
BOOL m_bIsDIB;
CPalette* m_pPal;
BYTE* m_pDib; // DIB data buffer
DWORD m_dwLength; // total buffer length
BYTE* m_pData;
CString m_strFileName;
public:
CImage(CImage& img, CSize newSize);
CImage();
CImage(CDC* pDC, int nBt = 0, BOOL bCompr = FALSE); // nBt = 0 means use default bits/pixel
CImage(const CImage& img);//copy constructor
CImage(CImage& img,CPoint start,CSize size);
CImage(CSize size,int NumColor=256,int Bits=8);
CImage& operator=(const CImage& img);
CImage(CImage& img, float scale);
virtual ~CImage();
void ImageClear();
BOOL WriteToFile(CFile* pFile);
BOOL ReadFromFile(CFile* pFile);
BOOL WriteAsBMP(CFile* pFile);
BOOL WriteAsPGM(CFile* pFile);
BOOL WriteAsData(CFile* pFile);
BOOL WriteToFile(CString filename);
BOOL SaveAsText(CString filename, BOOL bIsBinary = FALSE);
BOOL ReadFromFile(CString filename);
BOOL ReadFromPGM(CFile* pFile);
BOOL ReadFromBMP(CFile* pFile);
BOOL ReadFromIMG(CFile* pFile);
BOOL ReadFromDAT(CFile* pFile);
virtual void Serialize(CArchive &ar);
CBitmap* MakeBitmap(CDC* pDC, CSize& bmSize); // bmsize returned
BOOL CreateDIBPalette();
BOOL CreateGreyPalette();
BOOL CreateGreyDib();
BOOL Display(CDC*, CPoint origin) const;
BOOL Stretch(CDC*, CPoint origin, CSize size) const;
WORD Bits() const; // bits per pixel
WORD NumColors() const;//real colors
DWORD Length() const;
WORD Height() const;
WORD Width() const;
CSize Size() const;
CPalette* Palette() const;
UINT SetPalette(CDC* pDC,BOOL bBackground=FALSE) const;
void SetDIB(BOOL Flag=TRUE);
BYTE* Dib();
BYTE* Data();
void SetMonoColors(DWORD dwForeground, DWORD dwBackground);
BOOL GetMonoColors(DWORD& dwForeground, DWORD& dwBackground);
protected:
LPBITMAPINFOHEADER BMInfoHdPtr() const;
LPBITMAPINFO BMInfoPtr() const;
RGBQUAD* BMColorTblPtr() const;
BOOL AllocateMemory(BOOL bRealloc = FALSE);
BYTE Get8NeiborAver(BYTE* pGreyData, WORD w, WORD h, CPoint pos);
/////////the property of the image
public:
BOOL ValidImage(void);
BYTE MeanGrey();
double Contrast();
double CleanMeasure();
double NoiseMeasure();
double Entropy();
double ImageQuality();
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -