完成影像鏡射的簡單快速C++API

手機自拍的影像都是水平鏡射的畫面, 看了很不習慣想把他都轉成正常的照片, 研究了一下網上的方法, 覺得實在有點複雜. 其實只要用一個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度.

Comments

No comments yet. Why don’t you start the discussion?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *