手機自拍的影像都是水平鏡射的畫面, 看了很不習慣想把他都轉成正常的照片, 研究了一下網上的方法, 覺得實在有點複雜. 其實只要用一個CopyRect的API就可以做到. 關鍵技巧就是利用DestRect的參數.來看看下面的比較.
正常版的CopyRect:
int w=Src->Picture->Bitmap->Width;
int h=Src->Picture->Bitmap->Height;
TRect SrcRect=TRect(0,0,w,h);
TRect DestRect=TRect(0,0,w,h);// <--注意這裡
Target->Canvas->CopyRect(DestRect , Src->Canvas, SrcRect);
C++修改過後的CopyRect:
int w=Src->Picture->Bitmap->Width;
int h=Src->Picture->Bitmap->Height;
TRect SrcRect=TRect(0,0,w,h);
TRect DestRect=TRect(w,0,0,h);//<--注意這裡
Target->Canvas->CopyRect(DestRect , Src->Canvas, SrcRect);
C++有沒有發現超簡單😆
那如果把Y參數也顛倒,就變成垂直也鏡射了.
int w=Src->Picture->Bitmap->Width;
int h=Src->Picture->Bitmap->Height;
TRect SrcRect=TRect(0,0,w,h);
TRect DestRect=TRect(w,h,0,0);//<--注意這裡
Target->Canvas->CopyRect(DestRect , Src->Canvas, SrcRect);
C++結果就是輕鬆旋轉180度.