zoukankan      html  css  js  c++  java
  • 图像预处理第9步:存为.bmp文件

    //图像预处理第9步:将最终标准化后的字符图像分为单个单个的HDIB保存,并存为.bmp文件
    void CChildView::OnImgprcToDibAndSave() 
    {
        unsigned char* lpSrc;
        int w,h;
        w=m_charRect.front ().Width() ;
        h=m_charRect.front ().Height() ;
        m_dibRect.clear ();
        m_dibRectCopy.clear ();
        int i_src,j_src;
        int i,j;
        int counts=0;
        CRect rect,rectnew;
        BYTE* lpDIB=(BYTE*)::GlobalLock ((HGLOBAL)m_hDIB);
        BYTE* lpDIBBits=(BYTE*)::FindDIBBits ((char*)lpDIB);
        BYTE* lpNewDIBBits;
        BYTE* lpDst;
        LONG lLineBytes=(digicount*w+3)/4*4;
        LONG lLineBytesnew =(w+3)/4*4;
        HDIB hDIB=NULL;
        while(!m_charRect.empty ())
        {
            hDIB=::NewDIB (w,h,8);
            lpDIB=(BYTE*) ::GlobalLock((HGLOBAL)hDIB);    
            lpNewDIBBits = (BYTE*)::FindDIBBits((char*)lpDIB);
            lpDst=(BYTE*)lpNewDIBBits;
            memset(lpDst,(BYTE)255,lLineBytesnew * h);        
            rect=m_charRect.front ();
            m_charRect.pop_front ();
            for(i=0;i<h;i++)
                for(j=0;j<w;j++)
                {
                    i_src=rect.top + i;
                    j_src=j+counts*w;
                    lpSrc=(BYTE *)lpDIBBits + lLineBytes *  i_src + j_src;
                    lpDst=(BYTE *)lpNewDIBBits + lLineBytesnew * i + j;
                    *lpDst=*lpSrc;
                }
            ::GlobalUnlock (hDIB);
            m_dibRect.push_back (hDIB);
            counts++;
        }
        m_charRect=m_charRectCopy;
        m_dibRectCopy=m_dibRect;
        //输出为.bmp文件
        CString str;
        counts=1;
        while(!m_dibRect.empty ())
        {
            str.Format ("part%d.bmp",counts);
            //str=strPath+"\"+str;
               CFile file(str, CFile::modeReadWrite|CFile::modeCreate);
            hDIB=m_dibRect.front ();
            ::SaveDIB (hDIB,file);
            m_dibRect.pop_front ();
            file.Close ();    
            counts++;
        }
        m_dibRect=m_dibRectCopy;
    }
  • 相关阅读:
    远程服务器同步配置
    什么是微服务架构,.netCore微服务选型
    Servlet与JSP版本历史以及Tomcat支持的版本
    JDK里面的JRE是什么
    JDK与Java SE/EE/ME的区别
    javaBean和Servlet有什么区别
    JSP的JSTL标签使用
    Java语法教程
    eclipse使用教程
    JSP生命周期
  • 原文地址:https://www.cnblogs.com/Bobby0322/p/5408942.html
Copyright © 2011-2022 走看看