2015-10-21 47 views
1

在WPF中,DrawingContext.DrawImage看起來像這樣:「在其中的區域來繪製BitmapSource有沒有辦法通過指定源矩形的子區域來執行DrawingContext.DrawImage?

public abstract void DrawImage(
    ImageSource imageSource, 
    Rect rectangle 
) 

矩形記錄爲

我需要一種方法將源矩形的子矩形繪製到目標矩形中。

在WinForms中,您可以輕鬆地做到這一點,因爲Graphics.DrawImage需要兩個矩形。例如,

public void DrawImage(
    Image image, 
    Rectangle destRect, 
    int srcX, 
    int srcY, 
    int srcWidth, 
    int srcHeight, 
    GraphicsUnit srcUnit 
) 

在WPF中,我沒有看到任何等效。

任何人都有乾淨和高效的方式來做到這一點?

謝謝!

回答

2

你可以抓一個CroppedBitmap

ImageSource source = ... 
var sourceRect = new Int32Rect(...); 
var croppedBitmap = new CroppedBitmap(source, sourceRect); 
... 
drawingContext.DrawImage(croppedBitmap, new Rect(...)); 
相關問題