シナリオ
私の現在のプロジェクトの Flash フロント エンドは、Web サーバーがビデオに結合する必要がある画像を生成します。フレームレートとフレーム解像度の両方が十分に大きいため、画像シーケンスをバックエンドに送信することは (時間とクライアント帯域幅の両方で) 実行不可能です。代わりに、バックエンドでも画像描画を再作成しようとしています。
正確で遅い、または不正確で速い
問題は、これにはかなりのテクスチャ三角形の描画が含まれ、Python で見つかった 2 つの解決策 (こことそこ) は非常に非効率的であるため、描画に 1 フレームあたり約 60 秒かかり、なんと 7.5 時間の処理が必要になることです。 30 秒のクリップの時間。受け入れられない。
画像操作のために PHP モジュールを使用して ImageMagick にコマンドを送信すると、プロセス全体が超高速 (フレームあたり 10 分の 1 秒) になりますが、 ImageMagickはフロント エンドで行う方法で三角形を描画できないようです。最終結果が一致しません。受け入れられない。
私がここで尋ねているのは、この問題を解決する方法を知っている人がいるかということです。何らかの方法で Web サーバー上で実行する必要があります。
画像のワープ
フロントエンドのプロセスを説明しましょう。
- イメージ内の点に対して Delaunay 計算を実行して、均等に分散された三角形のメッシュを取得します。
- メッシュ内のポイント/頂点をオフセットして、画像を歪ませたり歪めたりします。
- 歪んだ三角形を新しいビットマップに描画します。
ステップ 1 と 2 の結果 (座標) をバックエンドに送信して、歪んだ三角形を描画し、ディスク上の画像に保存します (またはビデオにフレームとして追加します)。しかし、その最後のステップは、私が助けを必要としているものです.
質問
ビットマップに三角形を描画できる ImageMagick の代替手段はありますか? これを可能にするCライブラリのような他のライブラリはありますか? それとも、Ruby などのバックエンド テクノロジを切り替えることで、この効果をより簡単に実現できるでしょうか? (.Net と Java は、残念ながら、現在のところ実際にはオプションではありません)
どうもありがとう。EP。
PS 再タグ付けの努力に感謝します。この質問にどのラベルを付けるかはよくわかりません。ありがとう!