• 大小: 1.22MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-20
  • 语言: 其他
  • 标签: 特效  

资源简介

图像马赛克、窗口切分 图像渐显 中间扩张 中间收缩 百叶窗特效 移动 交叉飞入

资源截图

代码片段和文件信息

#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;
}
    
BYTE* CDib::GetData()
{
    return m_pData;
}

RGBQUAD* CDib::GetRGB()
{
    return m_pRGB;
}

BITMAPINFO* CDib::GetInfo()
{
    return m_pBitmapInfo;
}

WORD CDib::PaletteSize(LPBYTE lpDIB) 

    return (DIBNumColors(lpDIB) * sizeof(RGBTRIPLE)); 


WORD CDib::DIBNumColors(LPBYTE lpDIB) 

    WORD wBitCount;  // DIB bit count 
    wBitCount = ((LPBITMAPCOREHEADER)lpDIB)->bcBitCount; 
    switch (wBitCount) 
    { 
        case 1: 
         

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3444  2003-04-09 10:14  第二章特效显示\Cdib.cpp

     文件        785  2003-04-11 08:18  第二章特效显示\Cdib.h

     文件       3959  2004-09-20 17:17  第二章特效显示\DSPLIT.CLW

     文件        579  1999-01-28 11:36  第二章特效显示\DSPLIT.DSW

     文件     541696  2004-09-20 17:17  第二章特效显示\DSPLIT.NCB

     文件       2957  2004-09-20 16:59  第二章特效显示\DSPLIT.PLG

     文件      48420  2004-09-20 16:59  第二章特效显示\DSplit.aps

     文件       5290  2003-04-22 16:13  第二章特效显示\DSplit.dsp

     文件      14034  2004-09-20 16:59  第二章特效显示\DSplit.rc

     文件       2008  2003-04-01 08:45  第二章特效显示\DSplitDoc.cpp

     文件       1503  2003-04-11 08:16  第二章特效显示\DSplitDoc.h

     文件       6439  2003-04-02 10:18  第二章特效显示\DYNSPLITTERWND.CPP

     文件       1733  1998-03-10 17:19  第二章特效显示\DYNSPLITTERWND.H

     文件        997  2003-04-22 16:03  第二章特效显示\DlgArea.cpp

     文件       1233  2003-04-22 16:03  第二章特效显示\DlgArea.h

     文件       4158  2003-04-01 08:51  第二章特效显示\Dsplit.cpp

     文件       1366  2003-04-01 08:51  第二章特效显示\Dsplit.h

     文件      84992  2004-09-20 17:17  第二章特效显示\Dsplit.opt

     文件       3238  2003-04-02 16:45  第二章特效显示\Dsplitview.cpp

     文件       1859  2003-04-01 08:27  第二章特效显示\Dsplitview.h

     文件      29992  2004-09-13 19:35  第二章特效显示\DynSplitView2.cpp

     文件       2217  2003-04-27 10:05  第二章特效显示\DynSplitView2.h

     文件       3454  2003-04-25 14:22  第二章特效显示\MainFrm.cpp

     文件       1609  2003-04-25 14:22  第二章特效显示\MainFrm.h

     文件       4035  1998-02-03 10:42  第二章特效显示\README.TXT

     文件     216054  2004-09-06 18:02  第二章特效显示\RavMon.bmp

     文件        204  1998-02-03 10:42  第二章特效显示\STDAFX.CPP

     文件        928  1998-02-03 10:42  第二章特效显示\STDAFX.H

     文件        252  2003-04-27 08:40  第二章特效显示\TeXiaoXianShiDib.cpp

     文件        187  2003-04-27 08:40  第二章特效显示\TeXiaoXianShiDib.h

............此处省略29个文件信息

评论

共有 条评论