2014-01-23 128 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