您可能想看看这个,因为它可以解决您的部分问题,或者引导您朝着正确的方向前进:http:
//www.codeproject.com/KB/graphics/YLScsFreeTransform.aspx
它将使用您提供的 4 个 X/Y 坐标拍摄图像并对其进行扭曲。
快速、免费、简单的代码。经过测试,它工作得很好。只需从链接下载代码,然后像这样使用 FreeTransform.cs:
using (System.Drawing.Bitmap sourceImg = new System.Drawing.Bitmap(@"c:\image.jpg"))
{
YLScsDrawing.Imaging.Filters.FreeTransform filter = new YLScsDrawing.Imaging.Filters.FreeTransform();
filter.Bitmap = sourceImg;
// assign FourCorners (the four X/Y coords) of the new perspective shape
filter.FourCorners = new System.Drawing.PointF[] { new System.Drawing.PointF(0, 0), new System.Drawing.PointF(300, 50), new System.Drawing.PointF(300, 411), new System.Drawing.PointF(0, 461)};
filter.IsBilinearInterpolation = true; // optional for higher quality
using (System.Drawing.Bitmap perspectiveImg = filter.Bitmap)
{
// perspectiveImg contains your completed image. save the image or do whatever.
}
}
仅供参考,我相信 .NET 有 2gb 的对象内存限制,所以如果您正在处理非常大的图像,您可能会遇到内存错误。