我想绘制一个在不同分辨率的图像上具有相同大小的矩形。如果我需要解释得很好,我想要的是在图像上绘制矩形,但是您知道何时(例如)使用RectangleF(0.0 F,0.0F,100.0F,200.0F),它在低分辨率图像上看起来很大,在高分辨率图像上也很小。C#如何在不同分辨率的图像上绘制矩形?
任何帮助将不胜感激。
我的代码:
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);
'图像分辨率'可以表示像素大小或dpi。 '同样的规模'也不是很清楚。请详细说明您的问题! – TaW
@TaW对不起,如果我couldent解释好,我想要的是在图像上画一个矩形,但你知道什么时候(例如)我使用RectangleF(0.0F,0.0F,100.0F,200.0F)它会出现大低分辨率图像,在高分辨率图像上也很小。 –
是的。您需要a)为每个图像计算必要的缩放因子,然后b)在绘制之前通过执行Graphics.ScaleTransform来缩放图形。 – TaW