从jpg中取矩形区可以看看cximage类,有这种功能,缩放好像也有。

解决方案 »

  1.   

    StretchBlt(hMemDC,0,0,92,102,hScrDC,nX,nY,nWidth,nHeight,SRCCOPY);
    达到我缩放的目的,但奇怪的是图像的彩色失真了,
      

  2.   

    CxImage可以,你hmemdc是什么样的设备环境,记得JPG只能24BIT还是32BIT
      

  3.   

      //为指定设备描述表创建兼容的内存设备描述表
        hMemDC = CreateCompatibleDC(hScrDC);
        // 创建一个与指定设备描述表兼容的位图
        hBitmap = CreateCompatibleBitmap(hScrDC, nWidth, nHeight);
    ///hBitmap = CreateCompatibleBitmap(hScrDC, 92, 102);
        // 把新位图选到内存设备描述表中
        hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);
        // 把屏幕设备描述表拷贝到内存设备描述表中
        StretchBlt(hMemDC,0,0,nWidth,nHeight,hScrDC,nX,nY,nWidth,nHeight,SRCCOPY);如果不用StretchBlt(hMemDC,0,0,92,102,hScrDC,nX,nY,nWidth,nHeight,SRCCOPY); 缩放比例,就很正常,彩色是对的,
      

  4.   

    用StretchBlt 之前先调一次这个
    SetStretchBltMode(pDC->GetSafeHdc(),COLORONCOLOR);
      

  5.   

    首先用JPEGLIB读取jpg图然后建立内存
    byte *buf;