我需要在加载图片后立即裁剪并调整WPF应用程序中的图像大小。 所以,我的基本图像有一个VGA大小(640x480),我需要裁剪边缘(顶部18像素,底部36像素,左边48像素,右边24像素)。新图像(568 x 426像素)需要重新设计为原始尺寸(640 x 480像素) - 基本上它就像我们在摄影中使用的数码变焦镜头。
我已经找到了一些示例代码(Cropping whitespace from image in C#) - 但这有点太复杂了,因为我不需要检测图像上的空白。有没有简单的算法只是通过使用XAML来做到这一点?
提前致谢。
答案 0 :(得分:1)
我认为你应该能够使用Viewbox
Class来做到这一点。从链接页面:定义可以拉伸和缩放单个子项以填充可用空间的内容装饰器。您确实在Window
添加了一个,并将Image
设置为内容,然后您可以设置属性来控制它显示的图像部分:
<ViewBox Width="500" Height="500" Stretch="Uniform">
<Image Source="Images/SomeImage.jpg" Width="300" Height="300"
Margin="-48,-18,-36,-24" />
</ViewBox>
尝试使用不同的StretchDirection
值并将Margin
设置为负值以进行裁剪。链接页面中有一些示例,但如果您需要更多帮助,请告诉我。