使用System.Drawing.Graphics在C#中镜像

Emi*_*elt 6 c# graphics transform mirror winforms

我写了一个小辅助函数,它执行某种绘制操作,这些操作相当复杂.

我将这个函数称为另一个类,它有时会对它进行转换.旋转和平移工作正常,但现在我想强制辅助函数绘制在y轴上镜像的整个事物.

我试着用

g.ScaleTransform(0, -1);
Run Code Online (Sandbox Code Playgroud)

在调用辅助函数之前,它引发了一个异常.

那么,如何使用System.Drawing.Graphics对象绘制镜像呢?

max*_*max 12

你需要打电话

g.ScaleTransform(1, -1);
Run Code Online (Sandbox Code Playgroud)

请注意,现在您的图像将在屏幕上方边缘后面绘制.为了解决这个问题,你需要调用g.TranslateTransform之前g.ScaleTransform:

g.TranslateTransform(0, YourImageHeightHere);
g.ScaleTransform(1, -1);
Run Code Online (Sandbox Code Playgroud)