Frage

Ich bin mir nicht sicher, ob die Frage zu trivial ist, aber ich muss die verwenden folgenden überlastung der Methode Graphics.DrawImage:

public void DrawImage(
    Image image,
    PointF[] destPoints,
    RectangleF srcRect,
    GraphicsUnit srcUnit,
    ImageAttributes imageAttr
)

Ich habe eine RectangleF als Zielrechteck, also muss ich das konvertieren RectangleF zu PointF[] aber die beispiel im MSDN verwirrte mich ein wenig, weil es nur drei Punkte verwendet, um ein Parallelogramm zu definieren.

Wie könnte ich es tun?

Danke im Voraus

War es hilfreich?

Lösung 2

Ok, ich habe es in der gefunden MSDN:

Der Parameter destPoints gibt drei Punkte eines Parallelogramms an.Die drei Punktstrukturen repräsentieren die oben links, oben rechts, und unten links ecken des Parallelogramms.Der vierte Punkt wird aus den ersten drei Punkten zu einem Parallelogramm extrapoliert.

So können Sie Ihr Punktarray auf folgende Weise konstruieren:

    private PointF[] GetPoints(RectangleF rectangle)
    {
        return new PointF[3]
        { 
            new PointF(rectangle.Left, rectangle.Top),
            new PointF(rectangle.Right, rectangle.Top),
            new PointF(rectangle.Left, rectangle.Bottom)
        };
    }

Andere Tipps

Könnten Sie es nicht erstellen, indem Sie einfach das Array konstruieren?

(Aus dem Speicher) Wobei d das Zielrechteck ist:

destPoints[] = new PointF[4] { new PointF(d.Left, d.Top), new PointF(d.Right, d.Top), new PointF(d.Right, d.Bottom), new PointF(d.Left, d.Bottom) };
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top