WPF: Как обрезать / обрезать рисунок или DrawingImage? - PullRequest
1 голос
/ 19 октября 2010

У меня есть функция, получающая рисунок, который мне нужно частично представить как DrawingImage (то есть: его положение и размер будут уменьшены / изменены, чтобы соответствовать целевой области).

Как я могу обрезать /обрезать область исходного рисунка?Или, может быть, это легче сделать после преобразования в DrawingImage (как вырезать этот DrawingImage)?

Ответы [ 3 ]

4 голосов
/ 28 октября 2010

Решением было заключить в капсулу исходный чертеж в DrawingGroup, а затем применить геометрию отсечения ...

public DrawingGroup MyClippingFunc(Drawing OriginalDrawing, Rect ClippingArea)
{
    var Group = new DrawingGroup();
    Group.Children.Add(OriginalDrawing);
    Group.ClipGeometry = new RectangleGeometry(ClippingArea);

    return Group;
 }
3 голосов
/ 17 ноября 2011

Это еще один способ сделать это, используя в качестве примера класс InkCanvas StrokeCollection.

using (DrawingContext drawingContext = drawingGroup.Open())
                {
                    drawingContext.PushClip(new RectangleGeometry(yourRectangleObject));
                    Strokes.Draw(drawingContext);
                    drawingContext.Pop();
                }
0 голосов
/ 19 октября 2010

Я немного запутался в том, что вы спрашиваете, но, возможно, мой ответ на этот похожий вопрос поможет?

Как я могу использовать PathGeometry в качестве маски для BitmapSource (или любых данных изображения)?

...