2014-01-23 130 views
0

我需要在图片加载后立即裁剪并调整我的WPF应用程序中的图像大小。 所以,我的基本图像有一个VGA尺寸(640x480),我需要裁剪边缘(顶部18像素,底部36像素,左边48像素,右边24像素)。新图像(568 x 426像素)需要重新整合为原始尺寸(640 x 480像素) - 基本上它就像我们在摄影中使用的数字缩放。自动裁剪和调整图像

我已经找到一些示例代码(Cropping whitespace from image in C#) - 但这有点太复杂,因为我不需要检测图像上的空白。是否有任何简单的算法只是通过使用XAML来做到这一点?

在此先感谢。

+0

你是说在视觉上更改UI中的图像,还是更改实际的图像文件? – Sheridan

+0

嗨,不,我只是想改变用户界面中的图像。实际的图像不应该改变。有没有简单的代码来做到这一点? – user2754279

回答

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为负值裁剪。链接页面中有示例,但如果您需要更多帮助,请告知我们。

+0

它如何让我按照给定的距离(顶部18像素,底部36像素,左边48像素,右边24像素)裁剪图像?收获之后,我想我可以用'Stretch'来调整它的大小。 – user2754279

+0

这是一个很好的观点......我会研究它,或者想到其他的东西。 – Sheridan

+0

您可以将“Margin”设置为负值以裁剪“Image”...请参阅我编辑的示例。 – Sheridan