资源简介

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\link.command.1.tlog

     文件      17850  2019-09-02 20:13  24color\Debug\DSplit.tlog\link.read.1.tlog

     文件       5366  2019-09-02 20:13  24color\Debug\DSplit.tlog\link.write.1.tlog

     文件        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个文件信息

评论

共有 条评论