我在畫布上有一個圖像,ScaleTranform和附加到圖像RenderTranform的TranslateTransform。因此,通過一些鼠標事件處理,我可以在畫布的350 x 450範圍內移動和縮放圖像。如何在縮放和平移後計算圖像的裁剪區域
如何計算原始BitmapImage上的剪切矩形,然後進行一些縮放和平移,然後計算屏幕上的可見區域的剪切矩形。我想剪裁原始的BitmapImage。
<Border BorderBrush="Black" BorderThickness="2">
<Canvas Name="canvas" ClipToBounds="True" Height="450" Width="350">
<Image Name="image" Opacity="1" RenderTransformOrigin="0.5,0.5" Height="450" Width="350">
<Image.Source>
<BitmapImage UriSource="test.jpg"/>
</Image.Source>
</Image>
</Canvas>
</Border>
感謝
謝謝,但我不覺得這很簡單。 350乘450只是「裁剪」區域(畫布)的大小。該圖像可以像像素中的任何尺寸一樣,並且仍然顯示在「剪輯」區域內作爲默認值(即縮放爲1且不翻譯時)。我只是認爲可能有一種構建方式可以將「WPF中與像素無關」的「屏幕上顯示的內容」映射到源圖像中的實際像素座標。 – Terje 2011-05-17 18:27:09
不會很難適應...你能否提供一個簡單的虛擬項目和評論,你想獲得可見區域?我可以將幾行代碼放到它的... – santa 2011-05-18 10:32:18