我的画布肯定需要这种 Photoshop 转换。我找到了这个插件,但是转换后的图像质量真的很差https://github.com/migurski/canvas-warp
感谢帮助。我真的需要这个。
我的画布肯定需要这种 Photoshop 转换。我找到了这个插件,但是转换后的图像质量真的很差https://github.com/migurski/canvas-warp
感谢帮助。我真的需要这个。
透视变换是非平行变换。
canvas.getContext("2d") 只允许您进行并行变换——不可能有透视图。
WebGL 是画布的 3d 上下文,具有 4x4 变换矩阵,可让您进行非并行变换。因此,您可以在 WebGL 中进行透视变换。
问题是 WebGL 的浏览器采用:Chrome:是,Mozilla,Safari,Opera:可能(最小功能),IE,IOS,Android:否。
您还可以在 CSS3 中进行 x/y/z 变换。这也允许透视变换。浏览器采用更好:IE:可能,Opera:否,其他所有:是。
[编辑——好的,如果你真的需要使用canvas2D来显示透视图]
Thatcher Ulrich 创建了一个很棒的 Canvas2.5D 脚本,它使用 3x4 矩阵来进行透视数学。然后他将他的 3x4 矩阵映射到正常的 3x3 矩阵中,以将经过透视调整的图像显示到画布上。
这是他非常酷的演示:http ://tulrich.com/geekstuff/canvas/perspective.html
警告:前面有困难的数学概念......!
他的矩阵代码在演示中使用的 jsgl.js 脚本中。