2012-03-13 4 views
4

Eh bien, comment puis-je changer l'image avant à l'image après en utilisant imagemagick? Est-ce la commande -skew ou -distort, et comment puis-je l'utiliser de préférence dans typo3 et php?imagemagick incliner ou déformer une image

Toute aide est appréciée!

before and after

+0

Je pense que vous avez manqué d'accepter une réponse. Bonzo, par exemple - Je sais que ça marche. –

Répondre

6

En utilisant ImageMagick avec php et la ligne de commande:

// Working on the original image size of 400 x 300 
$cmd = "before.jpg -matte -virtual-pixel transparent". 
" +distort Perspective \"0,0 0,0 400,0 400,22 400,300 400,320 0,300 0,300 \" "; 
exec("convert $cmd perspective.png"); 

Note: 1/Ceci est pour les versions ultérieures de ImageMagick - l'opérateur en perspective a changé. 2/Vous devez utiliser + distorsion -distort car l'image est plus grande que l'image initiale boundrys.

Exemples de ImageMagick avec l'utilisation de php sur mon site http://www.rubblewebs.co.uk/imagemagick/operator.php

2

Je pense que ce que vous cherchez est la fonction Imagick::shearImage. Cela crée un carré de damier et il déforme en parallélogramme (enregistrer comme un fichier PHP et ouvert dans votre navigateur pour voir):

<?php 
$im = new Imagick(); 
$im->newPseudoImage(300, 300, "pattern:checkerboard"); 
$im->setImageFormat('png'); 
$im->shearImage("transparent", 0, 10); 
header("Content-Type: image/png"); 
echo $im; 
?> 

Dans un script plus grande, au cisaillement une image nommée myimg.png et enregistrer comme myimg-sheared.png, vous pouvez utiliser:

$im = new Imagick("myimg.png"); 
$im->shearImage("transparent", 0, 10); 
$im->writeImage("myimg_sheared.png"); 

Si shearImage ne suffit pas polyvalent, vous pouvez essayer la méthode Imagick::DISTORTION_PERSPECTIVE via la fonction Imagick::distortImage.

4

Perspective distortion devrait vous donner ce que vous voulez. Exemple:

convert original.png -matte -virtual-pixel white +distort Perspective '0,0,0,0 0,100,0,100 100,100,90,110 100,0,90,5' distorted.png 

En TYPO3, vous pouvez l'appliquer par (ab) en utilisant l'objet SCALE du GIFBUILDER. Exemple:

temp.example = IMAGE 
temp.example { 
    file = GIFBUILDER 
    file { 
    format = jpg 
    quality = 100 
    maxWidth = 9999 
    maxHeight = 9999 
    XY = [10.w],[10.h] 

    10 = IMAGE 
    10.file = fileadmin/original.png 

    20 = SCALE 
    20 { 
     params = -matte -virtual-pixel white +distort Perspective '0,0,0,0 0,100,0,100 100,100,90,110 100,0,90,5' 
    } 
    } 
} 
+0

J'ai essayé la distorsion avec la fonction imageMagickExec dans Typo3. Mais il n'y a pas d'effet tandis que d'autres aiment tourner. Avez-vous une idée? – netcase

+0

Test dans la console que IM fait ce que vous voulez en exécutant le premier code que j'ai fourni. Cela devrait vous donner à peu près ce que vous voulez en testant le code. Sinon, vous devrez vérifier votre installation de messagerie instantanée. Si oui, testez le deuxième code TypoScript que j'ai fourni. Je n'ai pas testé celui-là. – tmt

+0

merci pour votre aide. Je me bats avec IM, ne peut toujours pas se déformer pour tourner tout en rotation et d'autres travaillent – netcase

Questions connexes