我知道如何使用Graphics对象的DrawImage()方法将矩形源区域复制到矩形目标区域,以及如何复制到由三元素Point []数组定义的并列区域。如何从.NET中的矩形源区域复制到非矩形/非并行区域目标区域?
.NET中是否有任何方式将矩形源区域复制到4边非矩形目标区域(由四个任意点定义)?
更新。下面是一些示例代码,复制图像的平行四边形区域:
using (Graphic g = this.CreateGraphics())
{
List<Point> pts = new List<Point>();
pts.Add(new Point(0, 0));
pts.Add(new Point(100, 0));
pts.Add(new Point(10, 100));
g.DrawImage(pbSource.Image, pts.ToArray());
}
如果我添加一个第四点,我得到一个“没有实现”的异常。
更新2。这是可以在.NET中完全做到这一点:
alt text http://www.freeimagehosting.net/uploads/a770d1e97f.jpg
,但你必须自己做,逐像素。图片由Jonbert提供。
对不起,只知道win32方法;-) – 2008-11-30 22:00:29