c# - 有没有办法从 Windows 应用商店 (WinRT) 应用程序中的图像裁剪和校正四边形?

标签 c# windows-runtime windows-store-apps windows-store writeablebitmapex

我正在为 Windows 商店编写一个应用程序,它使用 Canny 边缘检测来查找图像上文档的边框。找到角落后,我需要能够裁剪此图像。我可以使用 WriteableBitmapExtension 方法裁剪矩形,但问题是它很少是矩形,而是四边形。

我读到过一种叫做 Aforge 的东西,它可能能够做到这一点,但它看起来不支持 Silverlight/WinRT。我知道这应该可以通过 OpenGL 实现,但很可能需要我更改应用程序的大部分。有没有其他选择?

最佳答案

您可以使用 WriteableBitmapEx 对要裁剪的区域使用 Blit 和 n alpha 掩码来实现它。只需使用 Canny 边缘检测的结果动态创建掩码即可。确保要保留的所有像素的 alpha 值为 255,而要裁剪的像素在 mask 位图中的 alpha 值为 0。然后在原始图像上使用 Blit 方法,提供生成的 alpha 掩码位图作为参数以及 BlendMode.Alpha。这不会真正减小原始图像的大小,但至少不需要的像素消失了。 在 alpha 掩蔽之前,您已经可以使用边缘检测结果中 x 和 y 的最小值、最大值裁剪矩形。这样大小也会减小,作为奖励,您的 alpha 掩蔽应该更快。

关于c# - 有没有办法从 Windows 应用商店 (WinRT) 应用程序中的图像裁剪和校正四边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31567640/

相关文章:

c# - 将 LINQ 与异步混合(从种子获取有效负载)

c# - 在 Visual Studios 中更快地处理图形?

c# - 如何获得微软证书(*.cer & .pfx)?

memory-management - WinRT 如何处理 BitmapImage 和 Image 内存

c# - 检测发生 rightTapped 事件的 ListViewitem

UWP:如何在机器上未安装 AppX Installer 时安装旁加载应用程序

c# - 在字符串列表中选择一个字符串 linq

c# - 在可移植类库中使用外部 DLL

c# - 在 Windows Phone 8.1 RT 中将联系人添加到我的应用程序联系人商店后如何获取所有联系人列表?

c# - 为 Windows 应用商店应用程序崩溃分析手动生成 .appxsym 和 .appxupload 是否安全?