2
需要創建一個函數,該函數在給定四個點的情況下裁剪圖像。通過指定四個角點(非矩形)來裁剪圖像
輸入:---------->圖像,四個角點
輸出:------->裁剪圖像
我所遇到兩種類型的裁剪功能到目前爲止,
1)使用的一個點,身高&寬度
2),其使用一個點,高度,寬度&的角度 然而這些功能似乎沒有完全解決我的問題。
爲了更清楚起見,我試圖在下圖中描述我的意圖。 Cropping an image, by specifying corner points
請出示你試過代碼,並有... –
公共靜態位圖CropRotatedRect問題(位圖源,矩形RECT,浮動角度,布爾高品質) { 位圖的結果=新位圖(rect.Width,RECT。高度);使用(Graphics g = Graphics.FromImage(result)) g.InterpolationMode = HighQuality? InterpolationMode.HighQualityBicubic:InterpolationMode.Default; (矩陣mat =新矩陣()) { mat.Translate(-rect.Location.X,-rect.Location.Y); mat.RotateAt(angle,rect.Location); g.Transform = mat; gDrawImage(source,new Point(0,0)); } } 返回結果; } – VAR
我已經使用了上面的代碼,但是當輸入區域是梯形時,函數似乎不起作用。 如果有一個函數需要4點作爲輸入,然後處理它,這將是所有輸入區域類型的解決方案。至少,這就是我的感受 – VAR