C#&WPF-使用矩形对象裁剪图像

4
我目前在我的项目中有一张图片,在上面放置了一个矩形(当你按方向键时,它会移动)。我的目标是让用户移动这个矩形以显示裁剪后的图像区域。如下所示截图。该矩形的宽度为60,高度为150。 Crop 接下来我想要发生的事情是点击一个按钮,将矩形所覆盖的区域传输到另一个与矩形相同大小的图像容器中。
到目前为止,我在搜索谷歌后仍无法实现这一点......请问是否有人可以帮助我?
谢谢!

5
请查看此链接:http://www.codeproject.com/Articles/20245/WPF-Interactive-Image-Cropping-Control。 - Prashant
肯定有更有效率的方法来完成这个任务... :( - Meh
1
你看过Paint.NET吗?我相信它是开源的,所以你可以查看他们的实现。 - Ian
1个回答

1
你需要使用CroppedBitmap类。
 <CroppedBitmap x:Key="croppedImage" 
      Source="{StaticResource masterImage}" SourceRect="30 20 105 50"/>

使用矩形的坐标替换sourcerect


你能再详细解释一下吗?这看起来很有前途。 如果需要在XAML中以特殊方式声明,那么应该采取什么方法呢? - Meh
1
这是一个使用示例:http://www.codeproject.com/Articles/23158/A-Photoshop-like-Cropping-Adorner-for-WPF - Dean Chalk
好的,我已经实现了这个功能。只有一个小问题...我为矩形设置“移动”方式时,也会移动裁剪区域。但是,仅在初始应用程序加载后才会发生。如果我做任何像点击复选框之类的操作,那么移动就不再起作用了...这是焦点相关问题还是我错误地捕获了按键? - Meh
@Meh 可能是这样的:“属性更改只能在对象初始化期间发生。调用 BeginInit 来表示初始化已经开始,调用 EndInit 来表示初始化已经完成。初始化后,属性更改将被忽略。” https://msdn.microsoft.com/zh-cn/library/system.windows.media.imaging.croppedbitmap.aspx#Syntax - StayOnTarget

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接