簡體   English   中英

如何在PictureBox中獲取ImageRectangle的尺寸?

[英]How do I get the dimensions of the ImageRectangle in PictureBox?

背景

我希望能夠在圖片框中獲得縮放圖像的繪制尺寸(我將在下面解釋)。

PictureBox.ImageRectangle屬性似乎正是我正在尋找的,因為它顯示了已調整大小的圖像的高度和寬度,以及它在控件內的相對頂部,左側位置。

問題是PictureBox.ImageRectangle是私有的,所以我不能在不使用反射的情況下讀取值(這顯然不是理想的)。

實際問題

我的問題是,有沒有另一種方法,我可以很容易地得到這些值,而無需編寫一個方法來計算“應該”的值是什么? 我可以輕松地做到這一點,但我覺得我會重新發明輪子。


語境:

我正在用C#編寫一個簡單的圖像處理應用程序,其中一件事就是允許用戶在圖像的一部分周圍繪制一個選區(很像Photoshop中的Marquee工具)。

我需要知道渲染圖像的尺寸,以便知道在哪里設置選框工具的邊界,並將繪制的矩形的值轉換為控件內縮放位圖上的點。

我的回答看起來很簡單,也許我錯過了一些東西,但我認為Control.DisplayRectangle非常適合你的需要。

編輯

好的,錯過了重點; 但是看看如何獲得picturebox的非公開成員的價值?

如果你想訪問圖片框中的圖像尺寸,你可以使用

GraphicsUnit units = GraphicsUnit.Point;

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM