4

ImageMagick ドキュメントのこの「チュートリアル」に従おうとしていますが、多くの問題があります。次の ImageMagic コマンドを、Imagick PHP の同等コマンドで実行したいと考えています。

convert -virtual-pixel transparent \
                        \( $top -matte  +distort Affine \
                            '0.5,511.5 0.5,0.5   0.5,0.5 -87.5,-50  511.5,511.5 87.5,-50' \) \
                        \( $left -matte +distort Affine \
                            '511.5,0.5 0.5,0.5   0.5,0.5 -87.5,-50  511.5,511.5 0.5,99.5' \) \
                        \( $front -matte  +distort Affine \
                            '0.5,0.5 0.5,0.5   0.5,319.5 0.5,99.5   319.5,0.5 87.5,-50.0' \) \
                        -background black -layers merge +repage \
                        -bordercolor black -border 5x2     isometric_cube_overlap.png

$top = new Imagick('top.png'); $front = new Imagick('front.png'); および$left = new Imagick('left.png');。これらはそれぞれ 512x512px の png 画像です。

アフィン変換に関するかなり不足しているドキュメントをいくつか見つけましたが、何$matrixが想定されているのか、関数を使用する方法さえわかりません。実際に ImageMagick コマンドを実行execしてみましたが、何も起こりませんでした。変換が完了し、として保存されることを期待していましたisometric_cube_overlap.png

誰かが私を正しい方向に向けることができたとしても、私は本当にここでいくつかの助けを借りることができます. ありがとう!

4

1 に答える 1

0

確かに、コマンドをそのまま実行できますか?

<?php 
    $cmd = " convert -virtual-pixel transparent \
                    \( $top -matte  +distort Affine \
                        '0.5,511.5 0.5,0.5   0.5,0.5 -87.5,-50  511.5,511.5 87.5,-50' \) \
                    \( $left -matte +distort Affine \
                        '511.5,0.5 0.5,0.5   0.5,0.5 -87.5,-50  511.5,511.5 0.5,99.5' \) \
                    \( $front -matte  +distort Affine \
                        '0.5,0.5 0.5,0.5   0.5,319.5 0.5,99.5   319.5,0.5 87.5,-50.0' \) \
                    -background black -layers merge +repage \
                    -bordercolor black -border 5x2     isometric_cube_overlap.png "." -distort ScaleRotateTranslate \"28,24  .4,.8  -110  50,120 \" ";
    exec("$cmd");
?> 

また、バックスラッシュは私には正しく見えません。そのコマンドの出力も失敗するに違いありませんか?

于 2012-07-17T12:28:50.410 に答える