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

  • 相关阅读:
    vue 自定义全局按键修饰符
    Vue 过滤器
    v-if、v-show 指令
    其他内置函数
    python中序列化和反序列化
    jmeter图形化html报告核心指标介绍
    jmeter在linux系统下如何进行压力测试
    文件操作的其他方法
    文件处理操作
    内置函数reduce()
  • 原文地址:https://www.cnblogs.com/xumaojun/p/8544135.html
Copyright © 2011-2022 走看看