2

ImageMagick 変換を改善または短縮する方法について疑問に思っていました (私自身 ImageMagick はかなり初心者です)。

私が持っているのは、フラット イメージ (左の 1) と、変換されたフラット イメージで塗りつぶされる透明な領域 (右の 1、破線が塗りつぶされ、青と灰色が上に塗りつぶされている) を持つ 3D モックアップです。

いくつかの ImageMagick コマンドをいじって、ステップごとにここにリストします (実数ではありません)。私が探しているのは、このシーケンスを短縮/結合する方法と、最終的な画像に到達するために作成されたヘルパー画像の数です:

  1. 私の与えられた入力画像。(下にスクロールして、これら 2 つをどのように組み合わせて必要な出力を得るかを確認してください...)

  2. フラッシュ画像をトリミングし、結果の 2 つの部分を斜めにします (トリミング コマンドを実行すると、トリミングされた結果とオーバーフローが吐き出されることに気付いたので、それを使用してフラット イメージの側面を分離します)。

    # sequence for left side:
    convert base.png -crop WxH parts.png
    convert parts-0.png -virtual-pixel transparent -distort Perspective /
            '....' (-resize WxH) front-skewed.png
    
    #[... same for the right side ...]
    
  3. 歪んだ部分を組み合わせる:

    convert front-skewed.png side-skewed.png +append fill.png
    
  4. 斜めの塗りつぶしとモックアップ カバー/マスクを組み合わせて、塗りつぶしが cover.png の透明な部分の下に挿入されるようにします (右の画像)。

    composite fill.png cover.png -compose dst-atop -matte final.png
    
  5. 不要な中間イメージを削除した結果。

私のプロセスステップの図

これを PHP から 経由で実行するexecので、これをよりスムーズに実行する方法についてのヒントを歓迎します。各変換を個別のexec呼び出しとして呼び出す必要があると思いますよね?

これは過度に実行されることはありませんが、新しいイメージが追加されたときにのみ実行されるため、パフォーマンスはそれほど重要ではありません.

4

1 に答える 1

1

多くの場合、「チェーン化」された個別の ImageMagick コマンド (つまり、次のコマンドが前のコマンドからの出力画像を入力画像として使用する場合) を 1 つのコマンドに入れることができます。

あなたがするので...

  • ...入力画像を個別に提供しないでください ([良い!] イラストには「オールインワン」があります)。
  • ...正確に個別の IM コマンドも...

...私は、この方法を実証および例証するために、独自のサンプル イメージとサンプル コマンドを作成するつもりはありません。

これらのリソースを紹介するだけにとどめておきます。

于 2012-09-26T11:54:31.923 に答える