我不确定这个问题是否过于简单,但我需要使用方法Graphics.DrawImage
的{{3}}重载:
public void DrawImage(
Image image,
PointF[] destPoints,
RectangleF srcRect,
GraphicsUnit srcUnit,
ImageAttributes imageAttr
)
我有RectangleF
作为目标矩形,因此我需要将RectangleF
转换为PointF[]
,但following让我感到困惑,因为它只使用了三个点定义平行四边形。
我怎么能这样做?
提前致谢
答案 0 :(得分:2)
你不能通过构建数组来创建它吗?
(从内存中)其中d是目标RectangleF:
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) };
答案 1 :(得分:1)
好的,我在MSDN:
中找到了它destPoints参数指定平行四边形的三个点。三个PointF结构代表平行四边形的左上角,右上角和左下角角。第四点从前三个推断出来形成一个平行四边形。
所以你可以用以下方式构建你的点数组:
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)
};
}