背景
我希望能够在图片框中获得缩放图像的绘制尺寸(我将在下面解释)。
PictureBox.ImageRectangle
属性似乎正是我正在寻找的属性,因为它显示了已调整大小的图像的高度和宽度,以及它在控件内的相对顶部,左侧位置。
问题是PictureBox.ImageRectangle
是私有的,所以我不能在不使用反射的情况下读取值(这显然不是理想的)。
实际问题
我的问题是,是否有另一种方法可以轻松获取这些值而无需编写方法来计算“应该”的值?我可以轻松地做到这一点,但我觉得我会重新发明轮子。
上下文
我正在用C#编写一个简单的图像处理应用程序,它必须做的一件事是允许用户在图像的一部分周围绘制一个选区(很像Photoshop中的选框工具)。
我需要知道渲染图像的尺寸,以便知道在哪里设置选框工具的边界,并将绘制的矩形的值转换为控件内缩放位图上的点。
答案 0 :(得分:2)
我的回答看起来很简单,也许我错过了一些东西,但我认为Control.DisplayRectangle适合你的需要。
编辑
好的,错过了重点;但请参阅How to get the value of non- public members of picturebox?
答案 1 :(得分:0)
如果要访问图片框中图像的尺寸,可以使用
GraphicsUnit units = GraphicsUnit.Point;
RectangleF imgRectangleF = pictureBox1.Image.GetBounds(ref units);
Rectangle imgRectangle = Rectangle.Round(imgRectangleF);