【问题标题】:How do I get the dimensions of the ImageRectangle in PictureBox?如何获取 PictureBox 中 ImageRectangle 的尺寸?
【发布时间】:2014-12-27 21:26:18
【问题描述】:

背景

我希望能够在图片框内获得缩放图像的绘制尺寸(我将在下面解释)。

PictureBox.ImageRectangle 属性似乎正是我正在寻找的,因为它显示了调整大小的图像的高度和宽度,以及它在控件内的相对顶部、左侧位置。

问题是PictureBox.ImageRectangle 是私有的,所以如果不使用反射我无法读取值(这显然不理想)。

实际问题

我的问题是,是否有另一种方法可以轻松获得这些值,而无需编写方法来计算“应该”的值是多少?我可以很容易地做到这一点,但我觉得我会重新发明轮子。


上下文:

我正在用 C# 编写一个简单的图像处理应用程序,它必须做的一件事是允许用户围绕图像的一部分绘制一个选区(很像 Photoshop 中的 Marquee 工具)。

我需要知道渲染图像的尺寸,以便知道在哪里设置我的选框工具的边界,并将绘制的矩形的值转换为控件内缩放位图上的点。

【问题讨论】:

    标签: c# .net windows graphics picturebox


    【解决方案1】:

    我的答案看起来很简单,所以也许我遗漏了一些东西,但我认为 Control.DisplayRectangle 适合您的需要。

    编辑

    好吧,没抓住重点;但是请参阅How to get the value of non- public members of picturebox?

    【讨论】:

    • 感谢您查看此 CharlesB。我希望找到一个不涉及反射的解决方案,所以我会继续尝试。再次感谢:)
    • 不客气;别忘了给issue at MS Connect投票
    【解决方案2】:

    如果你想访问图片框中图像的尺寸,你可以使用

    GraphicsUnit units = GraphicsUnit.Point;
    
    RectangleF imgRectangleF = pictureBox1.Image.GetBounds(ref units);
    Rectangle imgRectangle = Rectangle.Round(imgRectangleF);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      相关资源
      最近更新 更多