• 大小: 19.25MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-20
  • 语言: C/C++
  • 标签: VC++  图像处理  

资源简介

VC++的经典图书《VC++图像处理程序设计》(杨淑莹) 电子书和书上的所有源码

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “cdib.h“
#include “windowsx.h“
#include “math.h“
#define WIDTHBYTES(bits)    (((bits) + 31) / 32 * 4) 

CDib::CDib()
{
size=0;
}

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();    
         size = fileLength -sizeof(BITMAPFILEHEADER);
         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;
        DWORD colorTableSize = m_numberOfColors *
            sizeof(RGBQUAD);
        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(byBitCount == 1) dwWidthBytes = (nWidth + 7) / 8;
else if(byBitCount == 4) dwWidthBytes = (nWidth + 1) / 2;
else if(byBitCount == 24) dwWidthBytes = 3 * nWidth ;

while((dwWidthBytes & 3) != 0)dwWidthBytes++;

return dwWidthBytes;

}  
    
BYTE* CDib::GetData()
{
    r

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-05-25 11:28  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\
     文件    14466078  2009-08-24 17:23  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\VC++图像处理程序设计(杨淑莹).pdf
     目录           0  2012-05-25 11:27  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\
     文件      196662  2004-08-19 19:56  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\24为合成图.BMP
     文件      196662  2004-08-19 19:55  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\24位原图.bmp
     文件      196662  2004-08-19 19:55  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\24位背景图.bmp
     文件        3890  2004-04-02 22:57  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\Cdib.cpp
     文件         853  2004-04-02 22:57  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\Cdib.h
     文件        3405  2004-09-20 17:15  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DSPLIT.CLW
     文件         579  1999-01-28 11:36  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DSPLIT.DSW
     文件      738304  2004-09-20 17:15  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DSPLIT.NCB
     文件       82944  2004-09-20 17:15  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DSPLIT.OPT
     文件        3350  2004-09-20 17:05  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DSPLIT.PLG
     文件       46828  2004-09-20 17:06  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DSplit.aps
     文件        5170  2004-04-02 23:01  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DSplit.dsp
     文件       12456  2004-09-20 17:06  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DSplit.rc
     文件        2038  2003-04-14 13:51  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DSplitDoc.cpp
     文件        1516  2003-04-14 13:50  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DSplitDoc.h
     文件        6439  2003-04-02 10:18  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DYNSPLITTERWND.CPP
     文件        1733  1998-03-10 17:19  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DYNSPLITTERWND.H
     文件        4158  2003-04-01 08:51  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\Dsplit.cpp
     文件        1366  2003-04-01 08:51  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\Dsplit.h
     文件        3238  2003-04-02 16:45  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\Dsplitview.cpp
     文件        1859  2003-04-01 08:27  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\Dsplitview.h
     文件       11277  2004-08-24 10:22  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DynSplitView2.cpp
     文件        1979  2003-04-14 22:01  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\DynSplitView2.h
     文件        3550  2003-04-12 16:38  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\MAINFRM.CPP
     文件        1691  2003-04-02 17:00  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\MAINFRM.H
     文件        4035  1998-02-03 10:42  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\README.TXT
     目录           0  2012-05-25 11:27  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\RES\
     文件        1078  1998-02-03 11:13  51CTO下载-4VC++图像处理程序设计(杨淑莹)清晰版+源码\第10章图像合成\RES\DSPLIT.ICO
............此处省略688个文件信息

评论

共有 条评论