none
Region如何跟随图片旋转,急急急!!!!!! RRS feed

  • 问题

  • Code Snippet

    HRGN  m_hRgn; //The region of stamp in Photo

    HBITMAP hBmp = NULL;
    Color clr(TRANSPARENT_COLOR_ARGB);

    m_pDspImg->GetHBITMAP(clr, &hBmp);

    m_hRgn = ::BitmapToRegion(hBmp, TRANSPARENT_COLOR, 0);

     

     

     

     

    通过程序可以看到m_hRgn是和m_pDspImg相同的一个区域!

    现在,需要旋转m_pDspImg,因此也要m_hRgn跟随一起旋转,我该如何来操作呢?

     

     

    下边是我的做法,我发现这样好像不行!

     

    请斑竹帮忙解决,急急急!

     

     

    Code Snippet

    Bitmap* tempDspImg = new Bitmap(RgnWidth,RgnWidth,PixelFormat32bppARGB);
     PointF p(RgnWidth / 2,RgnWidth / 2);
         
     Matrix* rotMatrix1 = new Matrix();
       
     rotMatrix1->RotateAt(m_rotation,p);
     ::SaveImage(m_pDspImg,_T("c:\\testaa.bmp"));
     Graphics gwh(tempDspImg);
     gwh.SetTransform(rotMatrix1);
     gwh.DrawImage(m_pDspImg,(RgnWidth - width) / 2,(RgnWidth - height) / 2);
     ::SaveImage(tempDspImg,_T("c:\\testbb.bmp"));
     tempDspImg->GetHBITMAP(clr,&hBmp);
     m_hRgn = ::BitmapToRegion(hBmp, TRANSPARENT_COLOR, 0);
     ::DeleteObject(hBmp);

     

     

    • 已移动 Sheng Jiang 蒋晟Moderator 2009年2月7日 21:33 Windows GDI+ API问题 (从 Visual C++ 移动到 Windows Vista 开发相关讨论)
    • 已移动 小鱼儿 2009年5月19日 9:38 ([Loc]From:Windows Vista 开发相关讨论)
    2008年12月2日 9:42

答案