zoukankan      html  css  js  c++  java
  • OpenGl显示,任意大小的图片作为背景

    View Code
    OpenGl显示,任意大小的图片作为背景
    bComboBoxSelected==false时是原始背景
    
    
    void GetBackGroundBmp(CString fileName)
    {
     FILE *pFile = fopen(fileName, "r");
     if(pFile == 0)
      exit(0);
    
     //读取图像的大小信息
     fseek(pFile, 0x0012, SEEK_SET);
     fread(&ImageW, sizeof(ImageW), 1, pFile);
     fread(&ImageH, sizeof(ImageH), 1, pFile);
    
     PixelLen = ImageW * 3;
     while(PixelLen %4 != 0)
      ++PixelLen;
     PixelLen *= ImageH;
    
        // 读取像素数据
        PixelData = (GLubyte*)malloc(PixelLen);
        //if( PixelData == 0 )
        //    exit(0);
        fseek(pFile, 54, SEEK_SET);
        
     fread(PixelData, PixelLen, 1, pFile);
     IplImage* pImg1 = cvCreateImage(cvSize(ImageW,ImageH),8,3);
     pImg1->width = ImageW;
     pImg1->height = ImageH;
     memcpy(pImg1->imageData, PixelData, ImageW * ImageH *3);
     free(PixelData);
     IplImage* pImg2 = cvCreateImage(cvSize(V_W,V_H), 8,3);
     cvResize(pImg1, pImg2,CV_INTER_CUBIC);
     ImageW = V_W;
     ImageH = V_H;
     PixelLen = ImageW * 3;
     while(PixelLen %4 != 0)
      ++PixelLen;
     PixelLen *= ImageH;
     PixelData = (GLubyte*)malloc(PixelLen);
     memcpy( PixelData, pImg2->imageData,ImageW * ImageH *3);
     cvReleaseImage(&pImg1);
     cvReleaseImage(&pImg2);
    
     fclose(pFile);
    }
    void CbackUp::RenderScene()
    {
     //清除缓存
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     ///qwy
    #if 1
     if(bComboBoxSelected)
     {
      glMatrixMode(GL_PROJECTION);
      glLoadIdentity();
      gluOrtho2D(0,0,0,0);// <--- ?定投影模式在 2D 上
    
      glMatrixMode(GL_MODELVIEW);
      glDisable( GL_DEPTH_TEST );
      glLoadIdentity();
    //  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
      glRasterPos2f( -ImageW/ImageW, -ImageH/ImageH );// <--- ??參數要注意一下
      glDrawPixels(ImageW, ImageH,  GL_BGR_EXT, GL_UNSIGNED_BYTE, PixelData);
      glEnable(GL_DEPTH_TEST);
        
     
     } ///
     ////
     其他代码
    }
  • 相关阅读:
    [网络流24题]餐巾计划问题
    [网络流24题]方格取数问题
    [网络流24题]试题库问题
    [网络流24题]最长递增子序列问题
    [网络流24题]圆桌问题
    [网络流24题]魔术球问题
    51nod1462 树据结构
    51nod1053 最大M子段和 V2
    51nod1026 矩阵中不重复的元素 V2
    BZOJ3832: [Poi2014]Rally
  • 原文地址:https://www.cnblogs.com/mrpomelo/p/2651196.html
Copyright © 2011-2022 走看看