通过指定四个角点(非矩形)裁剪图像

时间:2014-01-31 07:28:55

标签: c# .net-3.5

需要创建一个函数,在给定四个点的情况下裁剪图像。

输入:---------->图片,四个角点

输出:------->裁剪图像

到目前为止,我遇到过两种类型的裁剪功能,

1)使用一个点,高度&宽度

2)使用点,高度,宽度和宽度。一个角度 然而,这些功能似乎并没有完全解决我的问题。

为了更清楚,我试图在下图中描绘我的意图。 Cropping an image, by specifying corner points

1 个答案:

答案 0 :(得分:2)

终于找到了我的问题的解决方案:)

// define quadrilateral's corners
List<IntPoint> corners = new List<IntPoint>( );
corners.Add( new IntPoint(  x1,  y1 ) );
corners.Add( new IntPoint( x2,  y2 ) );
corners.Add( new IntPoint( x3, y3 ) );
corners.Add( new IntPoint( x4, y4 ) );
// create filter
QuadrilateralTransformation filter=new QuadrilateralTransformationBilinear( corners, NewWidth, NewHeight );
// apply the filter
Bitmap newImage = filter.Apply( image );

这会将任何四边形转换为矩形的四边形。 它帮助了我,希望这些信息对其他人也有帮助。