2012-07-14 3 views
4

ImageMagick 설명서의 this "튜토리얼"을 따르려고하지만 많은 문제가 있습니다. 나는 그것의 Imagick의 PHP equivelant에서 다음 이미지 매직 명령을 완료하려면 :이 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 ... '로 확장되기 때문입니다. 아, 네 : 백 슬래시가 반드시 둥근 괄호 앞에 있어야합니다. 그렇지 않으면 쉘이 서브 쉘을 열려고 시도합니다. –

+0

@KurtPfeifle, 실제로 중복 제거 .. –

관련 문제