2010-11-18 35 views
4

J'essaie de trouver un moyen de pixelliser seulement une partie d'une image, mais pas de succès jusqu'à présent.Comment pixelliser une partie de l'image en utilisant ImageMagick?

Actuellement je suis le suivant ce tutoriel: http://www.mutinydesign.co.uk/free-scripts/live-photo-blurring-script/

Utiliser le plugin jQuery « de imgAreaSelect » afin que les utilisateurs peuvent sélectionner une partie de l'image de l'interface utilisateur. Ensuite, cliquez sur "pixéliser". Cela fait alors un appel ajax à la fonction pixelate écrite en php pour imagemagick. La fonction pixelate ressemble à ceci:

<?php 
$x1 = $_GET['x1']; 
$y1 = $_GET['y1']; 
$x2 = $_GET['x2']; 
$y2 = $_GET['y2']; 
$inputImage = $_GET['inputImage']; 
$outputImage = 'output_'.$_GET['inputImage']; 

exec("convert {$inputImage} \(+clone -scale 20% -scale 500% \) \ 
     \(+clone -gamma 0 -fill white \ 
     -draw 'rectangle {$x1},{$y1} {$x2},{$y2}' -blur 10x4 \) \ 
     -composite {$outputImage}"); 

echo $outputImage; 
?> 

Cela fonctionne, mais il pixellise l'image entière et non pas seulement la partie sélectionnée. Toutes les idées ou suggestions appréciées. Quelqu'un at-il pu accomplir quelque chose de similaire?

Répondre

1

Ce que vous devez faire est de diviser l'image en deux variables, en le dupliquant. Ensuite, vous recadrez une image autour de l'emplacement souhaité. Pixel, puis repliez-le sur l'autre image au même endroit.

Puis le sortir.

Vous aurez une sous-section de l'image avec flou, et le reste sera clair.

+0

Cela semble juste. J'essaye mais n'obtiens pas cela loin (je suis un débutant à imagemagick :). Des exemples de code que vous pourriez partager? – IntricatePixels