场景
我当前项目的 Flash 前端会生成 Web 服务器需要组合成视频的图像。帧速率和帧分辨率都足够大,以至于将图像序列发送到后端是不可行的(在时间和客户端带宽方面)。相反,我们也在尝试在后端重新创建图像绘图。
正确而缓慢,或错误而快速
问题是这涉及到相当多的纹理三角形的绘制,我们在 Python 中找到的两个解决方案(here和there)效率很低,每帧绘制大约需要 60 秒,导致处理时间高达 7.5 小时30 秒剪辑的时间。不可接受。
当使用 PHP 模块向 ImageMagick 发送命令进行图像处理时,整个过程非常快(每帧十分之一秒),但是ImageMagick 似乎无法像我们在前端那样绘制三角形,所以最后的结果不匹配。不可接受。
我在这里要问的是,是否有人知道解决此问题的方法,以任何必要的方式在 Web 服务器上运行。
扭曲图像
先解释一下前端的流程:
- 对图像中的点执行 Delaunay 计算,以获得均匀分布的三角形网格。
- 偏移网格中的点/顶点,扭曲或扭曲图像。
- 在新位图上绘制扭曲的三角形。
我们可以将步骤 1 和 2 的结果(坐标)发送到后端,然后绘制扭曲的三角形并将其保存到磁盘上的图像中(或作为帧附加到视频中)。但最后一步是我需要帮助的。
问题
有没有可以在位图中绘制三角形的 ImageMagick 替代品?是否有其他库,例如 C 库,可以让我们这样做?或者我们是否可以通过切换后端技术(如 Ruby)更轻松地实现这种效果?(不幸的是,.Net 和 Java 目前还不是真正的选择)
非常感谢。EP。
PS我很感激重新标记的努力,我不太清楚在这个问题上贴什么标签。谢谢!