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 上,因此未经测试,但应该是正确的。
我想在不同的图像上绘制一个具有相同大小的矩形 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 上,因此未经测试,但应该是正确的。