Graphics 对图形对象应用旋转
我很少有使用图形对象编程的经验。我目前的任务是导出带有修订注释的文档(.tiff图像)。编辑的注释只是一个黑色矩形对象。我能够通过.XMP数据获得x坐标、y坐标、宽度和高度属性。还有一个特性叫做旋转。这就是我被卡住的地方,应用旋转 因此,想象一下,一个文件上有一个密文,遮住了第一段。然后,用户使用编辑器中的工具旋转文档,使其现在位于一侧。客户端能够正确呈现编校,因为我们使用Atalasoft控件来获取和显示注释。现在我们有了一个web服务,它将使用编校来检索该图像。由于许可问题,我们无法在此服务中使用Atalasoft控件,因此我们仅从.tiff图像中提取.XMP数据并手动绘制修订。问题是,如果用户在文档上已经有密文的情况下旋转文档,我很难让密文正确旋转(因为我缺乏图形编程方面的知识)。如果我不应用任何旋转,则编辑将显示在文档旋转之前的位置,从而编辑文档的错误区域 以下是我尝试过的:Graphics 对图形对象应用旋转,graphics,Graphics,我很少有使用图形对象编程的经验。我目前的任务是导出带有修订注释的文档(.tiff图像)。编辑的注释只是一个黑色矩形对象。我能够通过.XMP数据获得x坐标、y坐标、宽度和高度属性。还有一个特性叫做旋转。这就是我被卡住的地方,应用旋转 因此,想象一下,一个文件上有一个密文,遮住了第一段。然后,用户使用编辑器中的工具旋转文档,使其现在位于一侧。客户端能够正确呈现编校,因为我们使用Atalasoft控件来获取和显示注释。现在我们有了一个web服务,它将使用编校来检索该图像。由于许可问题,我们无法在此服务
Dim rectangle As New Rectangle(xCoordinate, yCoordinate, width, height)
graphics.RotateTransform(rotation)
graphics.FillRectangle(Brushes.Black, rectangle)
当我这样做时,最终文档中根本不会显示修订。我已经了解到,在应用旋转之前,我可能需要调用以下命令:
graphics.TranslateTransform(x,y)
但我不知道我应该以x和y的形式传递什么。看起来我只需要从矩形的左上角开始旋转,但我还没有找到正确的方法
非常感谢您的帮助或向正确的方向努力
编辑1:
我也试过这个(取自)
它确实会旋转矩形,但它最终出现在错误的位置,因此它没有编辑文档的正确部分。再一次,当我在没有任何旋转变换的情况下显示文档时,似乎只需要使用左上角作为轴旋转密文,但我不太确定如何实现这一点 找到了答案。以下是我如何使用左上角作为轴旋转矩形:
Dim rectangle As New Rectangle(xCoordinate, yCoordinate, width, height)
Using rotationMatrix As New Matrix
rotationMatrix.RotateAt(rotation, New PointF(rectangle.Left, rectangle.Top))
graphics.Transform = rotationMatrix
graphics.FillRectangle(Brushes.Black, rectangle)
graphics.ResetTransform()
End Using
Dim rectangle As New Rectangle(xCoordinate, yCoordinate, width, height)
Using rotationMatrix As New Matrix
rotationMatrix.RotateAt(rotation, New PointF(rectangle.Left, rectangle.Top))
graphics.Transform = rotationMatrix
graphics.FillRectangle(Brushes.Black, rectangle)
graphics.ResetTransform()
End Using