如何使用ImageMagick对图像的部分进行像素化?

4
我正在尝试找出一种方法,仅对图像的一部分进行像素化,但迄今为止没有成功。
目前,我正在按照以下教程操作:http://www.mutinydesign.co.uk/free-scripts/live-photo-blurring-script/ 使用jQuery插件“imgAreaSelect”,使用户可以从UI中选择图片的一部分。 然后单击'pixelate'。 然后,将通过Ajax调用写在php中的imagemagick的pixelate函数。 pixelate函数如下:
<?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;
?>

这种方法可以实现,但会导致整个图片像素化而不仅仅是所选部分。有什么想法或建议吗?是否有人能够实现类似的效果?

1个回答

1
你需要做的是将图像分成两个变量并进行复制。然后在所需位置周围裁剪一个图像。对它进行像素化处理,然后将它放回到另一个图像中相同的位置。
然后输出它。
你会得到图像的子部分,其中一部分模糊,另一部分清晰。

1
听起来不错。我正在尝试,但进展不大(我是imagemagick的新手:)。您能分享一些代码示例吗? - IntricatePixels

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接