2011-05-26 105 views
0

快速的问题,可能是一个简单的答案。我有一个方形图像,但我想压扁它,以便它是一个平行四边形(这是我可以绘制一些立方体等轴测图)c#图像变换为平行四边形

我目前有我的图像存储在Image类。

回答

1

也许这是有帮助的: http://www.vcskicks.com/image-distortion.php

此代码squishes图像到任何四边形,而不仅仅是一个平行四边形。

+0

因此,这开始了我最终在这里结束的旅程:http://msdn.microsoft.com/en-us/library/3b575a03.aspx。我对使用图像失真类非常谨慎,因为它警告说它非常慢。 – ohmusama 2011-05-26 21:58:12

+0

我前几天写了一些图像处理,并且我发现如果您将图像数据存储在USHORT数组中并使用指针算术(不安全代码)来处理它,那么在百万像素图像上这几乎是实时的。令人惊讶的是,它比在非托管C++类中做这件事更快,我也尝试过。所以,如果你只需要将图像转换成平行四边形就不可能是哈特编码。只需使用Bresenham线算法将源图像的行移动到新的位置即可。如果你需要一些关于指针算术的例子代码,只需放下一个便条。 – elsni 2011-05-27 06:34:48

+0

我已经完成了指针运算,但只在C++中完成。我认为它是一样的。但作为一种设计选择,你认为将(不安全)压扁代码封装到dll中有什么想法,那么我不需要为我的主项目安装不安全的代码。 – ohmusama 2011-05-27 11:29:54