是否有一种方法可以将图像从图像绘制/拟合简单的四边形切割到标准轴对准的矩形上进行屏幕显示。 (以便将切口变形以填充矩形点)。在我看来,图像刷应该有可能,但我看不到它。

有帮助吗?

解决方案

是的,但是根据您的四边形,它的范围从极其容易到有些困难。

对齐矩形

如果四边形是与轴对齐的矩形,则可以使用CroppedBitMap。

未对准的矩形或其他平行四边形

如果四边形是任意的平行四边形(包括矩形),则可以使用rendertransform将Quatrieltransform映射到矩形的边界,并将CliptObounds =“ True”设置,以便仅显示切口。

<Decorator ClipToBounds="true">
  <Rectangle Fill="{StaticResource SourceImage}" RenderTransform="1 0 0 1 0 0" />
</Decorator>

通过更改RenderTransform上的矩阵参数,任何平行四边形都可以映射到矩形上。简单的代数将提供详细信息。只需将平行四边形的任何三个角插入矩阵变换方程中,然后求解六个变换参数即可。

任意四边形

如果四边形不是平行四边形,则需要使用WPF的2D图形中不可用的非伴随转换。但是,它在3D系统中可用:您需要创建四个嵌套对象:

  • 一个meshseometry3d来定义矩形的形状
  • geometrymodel3d在一个内定义材料(您的imagebrush)
  • modelVisual3d来定义您的转换
  • viewport3dvisual来定义您的相机和视口。

查尔斯·佩佐尔德(Charles Petzold)的博客 具有3D溶液的计算。

其他提示

如果您是说要显示裁剪的图像,则可以使用 CroppedBitmap.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top