zoukankan      html  css  js  c++  java
  • VC2005中将Picture控件显示图片保存为BMP,JPG等格式

    1.在stdafx.h头文件中加入

      #include <atlimage.h>

    2.保存图片

      方法一:  

    复制代码
      HBITMAP hBitmap = NULL;
    //创建位图段
    BITMAPINFO bmi;
    LPBYTE pBits;
    ZeroMemory(&bmi,sizeof(bmi));
    //m_bmpShow为Picture Control控件变量名称
    CDC *pShowDC = m_bmpShow.GetDC();

    //获取Picture Control控件的宽度和高度
    //CRect m_rcShow
    m_bmpShow.GetWindowRect(&m_rcShow);

    bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    bmi.bmiHeader.biWidth = m_rcShow.Width();
    bmi.bmiHeader.biHeight = m_rcShow.Height();
    bmi.bmiHeader.biPlanes = 1;
    bmi.bmiHeader.biBitCount = 24;
    bmi.bmiHeader.biCompression = BI_RGB;
    hBitmap = CreateDIBSection(pShowDC->m_hDC,&bmi,DIB_RGB_COLORS,(void **)&pBits,0,0);
    //创建兼容dc并选择位图段
    CDC dcMem;
    dcMem.CreateCompatibleDC(pShowDC);
    dcMem.SelectObject(hBitmap);
    dcMem.BitBlt(0,0,m_rcShow.Width(),m_rcShow.Height(),pShowDC,0,0,SRCCOPY);
    m_bmpShow.ReleaseDC(pShowDC);
    if( hBitmap )
    {
    CImage img;
    img.Attach(hBitmap);
    img.Save(_T("f:\1.bmp"));
       img.Save(_T("f:\1.jpg"));
      //其它文件格式同理
    DeleteObject(hBitmap);
    AfxMessageBox(_T("OK!!"));
    }
    复制代码

          方法二:

    复制代码
    //m_bmpShow为Picture Control控件变量名称
    CDC *pdc = m_bmpShow.GetDC();
    CImage imag;
    //获取Picture Control控件的宽度和高度
    CRect rcClient;
    m_bmpShow.GetWindowRect(&rcClient);
    imag.Create(rcClient.Width(),rcClient.Height(),32);

    ::BitBlt(imag.GetDC(),0,0,rcClient.Width(),rcClient.Height(),pdc->m_hDC,0,0,SRCCOPY);

    imag.Save(_T("f:\2.bmp"));
    imag.Save(_T("f:\21.jpg"));
    ReleaseDC(pdc);
    imag.ReleaseDC();
    AfxMessageBox(_T("OK!"));
    复制代码

    参考:http://blog.sina.com.cn/s/blog_56e19aa70100c59k.html

       http://blog.sina.com.cn/s/blog_56e19aa70100c5a0.html

  • 相关阅读:
    重拾Ajax
    和transformjs一起摇摆
    CSS/JS图片鼠标悬浮一道光闪过
    深究JS异步编程模型
    Vue.js组件
    并行计算基础&amp;编程模型与工具
    Oracle442个应用场景------------基础应用场景
    消息摘要算法-HMAC算法
    linux上网络配置不生效的怪异现象处理
    Eclipse 将projectBuild Path中引用的jar包自己主动复制到WEB-INF下的lib目录下
  • 原文地址:https://www.cnblogs.com/xumaojun/p/8544135.html
Copyright © 2011-2022 走看看