Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C如何在不同分辨率的图像上绘制矩形?_C#_Draw - Fatal编程技术网

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

C# C如何在不同分辨率的图像上绘制矩形?,c#,draw,C#,Draw,我想在不同分辨率的图像上绘制一个大小相同的矩形。很抱歉,如果我不能很好地解释,我想在图像上绘制一个矩形,但你知道,例如,当我使用矩形F0.0F、0.0F、100.0F、200.0F时,它在低分辨率图像上会显得很大,在高分辨率图像上也会显得很小 任何帮助都将不胜感激 我的代码: Color customColor = Color.FromArgb(50, Color.Blue); SolidBrush shadowBrush = new SolidBrush(customColor); // Cr

我想在不同分辨率的图像上绘制一个大小相同的矩形。很抱歉,如果我不能很好地解释,我想在图像上绘制一个矩形,但你知道,例如,当我使用矩形F0.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);

选择基本分辨率,例如:80x60

获取图像分辨率,例如:

var imageWidth = image.Width;
var imageHeight = image.Height;
计算基本分辨率与用户分辨率的比例:

var scaleWidth = imageWidth / 80;
var scaleHeight = imageHeight / 60;
将矩形的尺寸乘以刻度,例如:

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

在我的手机上写下了这个答案,所以它没有经过测试,但应该是正确的。

“图像分辨率”可以表示像素大小或dpi同样的尺度也不是很清楚。请回答你的问题@很抱歉,如果我不能很好地解释,我想在图像上画一个矩形,但是你知道,例如,当我使用矩形时,它在低分辨率图像上会显示大,在高分辨率图像上也会显示小。是的。您需要a计算每个图像所需的比例因子,然后b在绘制之前通过执行Graphics.ScaleTransform来缩放图形。@TaW谢谢您的回答。我是初学者,请您给我看一个c语言的示例代码如何操作?a不要在注释中添加代码,更新问题。b它不起作用是一个毫无用处的问题描述。你的代码有整数除法的问题。更改为../100f,但您需要了解自己在做什么。把完整的数字加到问题上!如何使用您的解决方案在图像上写入文本并根据图像分辨率自动缩放文本@希拉