Domanda

Non sono sicuro che la domanda sia troppo banale ma, ho bisogno di usare il Seguente Sovraccarico del metodo Graphics.DrawImage:

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

Ho un RectangleF come rettangolo di destinazione, quindi ho bisogno di convertire il RectangleF in generazione di PointF[] ma il Esempio in MSDN mi ha confuso un po 'perché usa solo tre punti per definire un parallelogramma.

Come potrei farlo?

Grazie in anticipo

È stato utile?

Soluzione 2

OK, l'ho trovato nel msdn : .

.

Il parametro Despoint specifica tre punti di un parallelogramma.Le tre strutture Pointf rappresentano il in alto a sinistra , in alto a destra e in basso a sinistra angoli del parallelogramma.Il quarto punto è estrapolato dai primi tre per formare un parallelogramma.

Quindi puoi costruire il tuo array di punti nel modo seguente:

    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)
        };
    }
.

Altri suggerimenti

Non potresti crearlo solo costruendo l'array?

(dalla memoria) dove D è il rettangolo di destinazione:

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) };
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top