2012-07-14 197 views
4

我試圖在ImageMagick文檔中關注this「教程」,但遇到很多麻煩。我想在其Imagick PHP equivelant完成以下ImageMagic命令:如何將此ImageMagick命令轉換爲其相應的PHP Imagick?

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圖像。

我在Affine轉換中發現了一些rather lacking documentation,但我不知道$matrix應該是什麼或者如何使用該函數。我甚至嘗試在實際的ImageMagick命令上運行exec,但沒有發生任何事情。我期待轉換已完成並保存爲isometric_cube_overlap.png

我真的可以在這裏使用一些幫助,即使有人可以指出我在正確的方向。謝謝!

回答

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"); 
?> 

此外反斜槓看起來不正確。 我敢打賭,該命令的輸出也失敗了?

+0

*您的*命令將失敗,因爲它站在hsmoore.com。因爲它擴展爲* double *'convert convert ...'。哦,是的:反斜槓肯定是需要在圓括號前面,否則外殼會嘗試打開一個子外殼... – 2012-07-17 19:59:01

+0

@ KurtPfeifle,確實,重複刪除.. – 2012-07-18 08:04:41