C# 如何在不同分辨率的图像上绘制矩形?

C# How To Draw a Rectangle On Images With Different Resolution?

我想在不同的图像上绘制一个具有相同大小的矩形 resolution.sorry 如果我不能很好地解释,我想要的是在图像上绘制一个矩形但是你知道什么时候(例如)我使用 RectangleF(0.0F, 0.0F, 100.0F, 200.0F) 它在低分辨率图像上会显得很大,在高分辨率图像上也会显得很小。

任何帮助将不胜感激。

我的代码:

Color customColor = Color.FromArgb(50, Color.Blue);
SolidBrush shadowBrush = new SolidBrush(customColor);
// Create array of rectangles.
RectangleF[] rects = { new RectangleF(image.Width/2, 0.0F, 100.0F, 200.0F), new RectangleF(100.0F, 200.0F, 250.0F, 50.0F) };
g.FillRectangles(shadowBrush, rects);

Select 基本分辨率,例如:80x60

获取图像分辨率例如:

var imageWidth = image.Width;
var imageHeight = image.Height;

计算基本分辨率与用户分辨率的比例:

var scaleWidth = imageWidth / 80;
var scaleHeight = imageHeight / 60;

将 Rect 的尺寸乘以比例,例如:

newX = baseX * scaleWidth, 
newY = baseY * scaleHeight, 
newWidth = baseWidth * scaleWidth, 
newHeight = baseHeight * scaleHeight

这个答案写在我的 phone 上,因此未经测试,但应该是正确的。