我今天一直在寻找所有东西,但我无法满足我的需求。
我有一个 Web 应用程序,让用户可以拖放文本/图像,然后将详细信息发送到服务器以将其绘制为 pdf。我正在尝试启用旋转,但我无法掌握 translatetransform 的东西。我在测试中的图像打印效果很好,旋转得很好,但它不在正确的位置。我想念最初的 translatetransform 如何改变事物,而我的思绪在一天结束时被击中。我是否必须首先使用不同的图形实例将其绘制为位图,然后将该位图绘制到我的背景?对此的任何帮助都会很棒!谢谢!
代码:
- i 是来自浏览器的图像对象
- coord 是浏览器上画布 (990wx1100h) 上图像上角的 x & y
size 是浏览器上元素的 h & w
Bitmap b = new Bitmap(wc.OpenRead(i.img)); if (i.rotation != 0) { g.TranslateTransform(this.CanvasDetails.size.width/2, this.CanvasDetails.size.height/2); g.RotateTransform(i.rotation); g.DrawImage(b, new Rectangle(- i.coord.x/2, -i.coord.y/2, i.size.width, i.size.height), 0, 0, b.Width, b.Height, GraphicsUnit.Pixel, ia); } else { g.DrawImage(b, new Rectangle(i.coord.x, i.coord.y, i.size.width, i.size.height), 0, 0, b.Width, b.Height, GraphicsUnit.Pixel, ia); }
编辑 我按照 Adam 的建议添加了 translatransform 反转,但图像仍然绘制在不同的位置。
g.TranslateTransform(this.CanvasDetails.size.width / 2, this.CanvasDetails.size.height / 2); g.RotateTransform(i.rotation); g.TranslateTransform(-this.CanvasDetails.size.width / 2, -this.CanvasDetails.size.height / 2); g.DrawImage(b, new Rectangle(-i.coord.x / 2, -i.coord.y / 2, i.size.width, i.size.height), 0, 0, b.Width, b.Height, GraphicsUnit.Pixel, ia);
示例:浏览器视图
.NET 绘制版本