• VS2010 使用GDI+创建显示GIF的MFC程序


    配置VS2010 GDI+环境
    http://www.hacktea8.com/read.php?tid-1489.html
    配置好看下面:
    创建CMemeryDC类从DC类派生
    部分代码如下:
    #include "StdAfx.h"
    #include "MemDC.h"


    CMemeryDC::CMemeryDC(CDC* pDC,const CRect& rect)
    {
    //创建一个兼容的设备上下文
    CreateCompatibleDC(pDC);
    //为位图对象分配空间
    m_bmp=new CBitmap();
    //创建位图对象
    m_bmp->CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());
    //选中创建的位图
    m_Oldbmp=SelectObject(m_bmp);
    //设置成员变量
    m_pDC=pDC;
    //设置区域对象
    m_Rect=rect;
    //绘制白色背景
    this->BitBlt(0,0,m_Rect.Width(),m_Rect.Height(),m_pDC,m_Rect.left,m_Rect.top,WHITENESS);
    }


    CMemeryDC::~CMemeryDC()
    {
    //绘制图形
    m_pDC->BitBlt(m_Rect.left,m_Rect.top,m_Rect.Width(),m_Rect.Height(),this,0,0,SRCCOPY);
    //选中原来的位图对象
    SelectObject(m_Oldbmp);
    //判断位图对象是否为空
    if(m_bmp!=NULL){
    delete m_bmp;
    }
    //释放设备上下文
    DeleteObject(this);
    }

    写打开文件对话框的函数
    部分代码如下:
    CFileDialog flDlg(true,"","",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"GIF|*.gif;||");
    if(flDlg.DoModal()==IDOK){
    CString szText;
    szText=flDlg.GetPathName();
    m_FileName.SetWindowTextA(szText);
    //加载GIF图像 CString 对象的 AllocSysString 方法将 CString 转化成 BSTR
    m_pBmp=Bitmap::FromFile(szText.AllocSysString());
    //释放资源
    szText.ReleaseBuffer();
    //获取帧维数
    m_nCount=m_pBmp->GetFrameDimensionsCount();
    //定义一个GUID对象
    GUID *pGuids=new GUID[m_nCount];
    //获取图像帧的GUID
    m_pBmp->GetFrameDimensionsList(pGuids,m_nCount);
    //获取GIF帧数
    m_FrameCount=m_pBmp->GetFrameCount(pGuids);
    //定义一个整型变量
    UINT nSize=0;
    //初始化成员变量
    m_nCount=0;
    //获取属性的值
    m_pBmp->GetPropertySize(&nSize,&m_nDelay);
    //定义属性指针
    PropertyItem *pItem=NULL;
    //为属性指针分配合适的空间
    pItem=(PropertyItem*)malloc(nSize);
    //获取属性信息
    m_pBmp->GetAllPropertyItems(nSize,m_nDelay,pItem);
    //获取第一帧的延时
    m_nDelay=((long*)pItem->value)[0];
    //释放属性对象
    free(pItem);
    //释放GUID
    delete[] pGuids;
    m_nIndex=0;
    KillTimer(1);
    SetTimer(1,300,NULL);
    }
    源代码如下:
    OutputGif

    原文出处:http://www.hacktea8.com/read.php?tid-1491-ds-1.html

  • 相关阅读:
    Spring事务(三)事务增强器
    Spring事务(二)事务自定义标签
    Spring事务(一)JDBC方式下的事务使用示例
    Spring整合MyBatis(五)MapperScannerConfigurer
    Spring整合MyBatis(四)MapperFactoryBean 的创建
    BOS物流管理系统-第五天
    BOS物流管理系统-第一天
    SSM
    【剑指offer】翻转单词顺序,C++实现
    【特征选择】嵌入式特征选择法
  • 原文地址:https://www.cnblogs.com/zhongbin/p/2877732.html
Copyright © 2020-2023  润新知