【发布时间】:2014-10-21 14:01:00
【问题描述】:
我在图像上最多有 4 个矩形,对于每个矩形,我都知道它们的左上角 X、Y 坐标和宽度、高度。我想创建一个 Int32Rect ,其尺寸从最左上角的矩形到最右下角的矩形。主要问题是您只能使用 x,y,width,height 参数创建 System.Windows.Int32Rect。有什么想法可以用我目前已知的值来实现吗?
编辑: 试图澄清,我想创建一个 Int32Rect ,它是我图像上所有其他“矩形”的尺寸。所以一个大的 Int32Rect 从图像左上角的“矩形”开始,延伸到图像右下角的“矩形”。
以下是对单个矩形执行此操作的一些代码:
var topLeftOfBox = new Point(centerOfBoxRelativeToImage.X - Box.Width/2,
centerOfBoxRelativeToImage.Y - Box.Height/2);
return new CroppedBitmap(originalBitmap, new Int32Rect(topLeftOfBox.X, topLeftOfBox.Y, Box.Width, Box.Height));
感谢大家的帮助和想法,我发现 Aybe 的答案最适合我。
【问题讨论】:
-
你说你有顶部、左侧、X、Y 和宽度和高度。我没有看到问题,因为您可以将 X、Y、Width 和 Height 参数传递给 Int32Rect。
-
这似乎是一个相当简单的最小/最大计算。你能发布你的最佳尝试和问题描述吗?
-
@AaronHawkins 我可以为单个矩形执行此操作,但我想为多个矩形执行此操作。
-
@nvoigt 查看问题更新,看看是否有帮助
标签: c# rectangles