資源簡介
VS2017編譯通過 彩色圖像基本處理 灰度 亮度 對比度 平滑處理 低通濾波 銳化處理 高通濾波 增強 特效處理 圖像浮雕 馬賽克
代碼片段和文件信息
#include?“stdafx.h“
#include?“cdib.h“
#include?“windowsx.h“
#include?“math.h“
#define?WIDTHBYTES(bits)????(((bits)?+?31)?/?32?*?4)?
CDib::CDib()
{
// size=0;
// LoadFile();
}
CDib::~CDib()
{
????GlobalFreePtr(m_pBitmapInfo);
}
void?CDib::LoadFile(const?char*?dibFileName)
{
strcpy(m_fileNamedibFileName);
????CFile?dibFile(m_fileName?CFile::modeRead);
????
????dibFile.Read((void*)&bitmapFileHeadersizeof(BITMAPFILEHEADER));
????if?(bitmapFileHeader.bfType?==?0x4d42)
????{
????????DWORD?fileLength?=?dibFile.GetLength();????
????????DWORD?size?=?fileLength?-
sizeof(BITMAPFILEHEADER);
????????BYTE*?pDib?=
????????????(BYTE*)GlobalAllocPtr(GMEM_MOVEABLE?size);
????????dibFile.Read((void*)pDib?size);
????????dibFile.Close();
????????m_pBitmapInfo?=?(BITMAPINFO*)?pDib;
????????m_pBitmapInfoHeader?=?(BITMAPINFOHEADER*)?pDib;
????????m_pRGB?=?(RGBQUAD*)(pDib?+
m_pBitmapInfoHeader->biSize);
????????int?m_numberOfColors?=?GetNumberOfColors();
????????if?(m_pBitmapInfoHeader->biClrUsed?==?0)
????????????m_pBitmapInfoHeader->biClrUsed?=
????m_numberOfColors;
colorTableSize?=?m_numberOfColors?*
????????????sizeof(RGBQUAD);
//////////////////////////////////////////////////////////
// if(m_pBitmapInfoHeader->biBitCount==24)
// m_pData?=?pDib?+?m_pBitmapInfoHeader->biSize;
??????///??else
????????m_pData?=?pDib?+?m_pBitmapInfoHeader->biSize
????????????+?colorTableSize;
//////////////////////////////////////////////////////////
if?(m_pRGB?==?(RGBQUAD*)m_pData)?//?No?color?table
m_pRGB?=?NULL;
????????m_pBitmapInfoHeader->biSizeImage?=?GetSize();
m_valid?=?TRUE;
????}????
????else
????{
????????m_valid?=?FALSE;
????????AfxMessageBox(“This?isn‘t?a?bitmap?file!“);
????}
}
BOOL?CDib::IsValid()
{
????return?m_valid;
}
????????
char*?CDib::GetFileName()
{
????return?m_fileName;
}
????????
UINT?CDib::GetWidth()
{
????return?(UINT)?m_pBitmapInfoHeader->biWidth;
}
????????
UINT?CDib::GetHeight()
{
????return?(UINT)?m_pBitmapInfoHeader->biHeight;
}
????????
DWORD?CDib::GetSize()
{
????if?(m_pBitmapInfoHeader->biSizeImage?!=?0)
????????return?m_pBitmapInfoHeader->biSizeImage;
else
????{
????????DWORD?height?=?(DWORD)?GetHeight();
????????DWORD?width?=?(DWORD)?GetWidth();
????????return?height?*?width;
????}
}
UINT?CDib::GetNumberOfColors()
{
int?numberOfColors;
????if?((m_pBitmapInfoHeader->biClrUsed?==?0)?&&
??????????(m_pBitmapInfoHeader->biBitCount?9))
{
switch?(m_pBitmapInfoHeader->biBitCount)
{
????case?1:?numberOfColors?=?2;?break;
????case?4:?numberOfColors?=?16;?break;
????case?8:?numberOfColors?=?256;
}
}
????else
numberOfColors?=?(int)?m_pBitmapInfoHeader->biClrUsed;
????return?numberOfColors;
}
DWORD?CDib::GetDibWidthBytes()
{??
byBitCount=m_pBitmapInfoHeader->biBitCount;
LONG?nWidth=m_pBitmapInfoHeader->biWidth;
dwWidthBytes?=?(DWORD)m_pBitmapInfoHeader->biWidth; //8-bits
if(by
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A..H.?????31232??2019-09-02?20:20??24color\.vs\DSPLIT\v14\.suo
?????文件???????9951??2019-08-24?15:29??24color\Cdib.cpp
?????文件????????934??2003-04-09?17:47??24color\Cdib.h
?????文件??????22563??2019-09-02?20:13??24color\Debug\Cdib.obj
?????文件?????178688??2019-09-02?20:13??24color\Debug\DSplit.exe
?????文件????1953376??2019-09-02?20:13??24color\Debug\DSplit.ilk
?????文件???????1425??2019-09-02?20:13??24color\Debug\DSplit.log
?????文件??????41802??2019-09-02?20:13??24color\Debug\DSplit.obj
?????文件???36700160??2019-09-02?20:13??24color\Debug\DSplit.pch
?????文件????5664768??2019-09-02?20:13??24color\Debug\DSplit.pdb
?????文件??????10464??2019-09-02?20:13??24color\Debug\DSplit.res
?????文件??????20338??2019-09-02?20:13??24color\Debug\DSplit.tlog\CL.command.1.tlog
?????文件?????107210??2019-09-02?20:13??24color\Debug\DSplit.tlog\CL.read.1.tlog
?????文件??????17588??2019-09-02?20:13??24color\Debug\DSplit.tlog\CL.write.1.tlog
?????文件????????224??2019-09-02?20:13??24color\Debug\DSplit.tlog\DSplit.lastbuildstate
?????文件???????6946??2019-09-02?20:13??24color\Debug\DSplit.tlog\li
?????文件??????17850??2019-09-02?20:13??24color\Debug\DSplit.tlog\li
?????文件???????5366??2019-09-02?20:13??24color\Debug\DSplit.tlog\li
?????文件????????966??2019-09-02?20:13??24color\Debug\DSplit.tlog\rc.command.1.tlog
?????文件???????6838??2019-09-02?20:13??24color\Debug\DSplit.tlog\rc.read.1.tlog
?????文件????????634??2019-09-02?20:13??24color\Debug\DSplit.tlog\rc.write.1.tlog
?????文件??????93552??2019-09-02?20:13??24color\Debug\DSplitDoc.obj
?????文件??????45849??2019-09-02?20:13??24color\Debug\DSplitView.obj
?????文件??????33551??2019-09-02?20:13??24color\Debug\DynSplitterWnd.obj
?????文件??????69236??2019-09-02?20:13??24color\Debug\DynSplitView2.obj
?????文件??????20235??2019-09-02?20:13??24color\Debug\LightDlg.obj
?????文件??????74068??2019-09-02?20:13??24color\Debug\MainFrm.obj
?????文件??????46739??2019-09-02?20:13??24color\Debug\MakeColorDib.obj
?????文件??????20317??2019-09-02?20:13??24color\Debug\ontrastDlg.obj
?????文件??????20592??2019-09-02?20:13??24color\Debug\PaintColorDlg.obj
............此處省略65個文件信息
評論
共有 條評論