PECL Imagick adaptiveSharpenImage不工作?

时间:2014-05-28 23:17:08

标签: php imagemagick imagick pecl

我试图使用此功能锐化我的图像,但它无法正常工作。无论我为radius和sigma传递什么值,我都会获得相同的图像(相同的文件大小)。

它返回1表示没有错误。这可能会出现什么问题?

$photo = new Imagick(PHOTOS_DIR.$sFilename);
$photo->adaptiveSharpenImage(2,1);  //4,2 ... 0,10, 0.5,0.5 - all give identical results
$guid = md5(uniqid(rand(),true));
$photo->writeImage(PHOTOS_DIR.'/temp/'.$guid.'.jpg');

我尝试传递imagick::CHANNEL_BLUE作为可选的第三个参数,它没有任何区别。

  • CentOS 6.5
  • PHP 5.5.12
  • pecl-imagick 3.1.2
  • imagemagick 6.5.4

1 个答案:

答案 0 :(得分:0)

在某些情况下,adaptiveItextSharpen函数 真的 是微妙的。下面的图像是源,然后是由:

生成的锐化图像
$radius = 10;
$sigma = 2;
$imagick->adaptiveSharpenImage($radius, $sigma);

源图像

Source image

锐化图像

Sharpened

即使在那些相对较大的值,图像肯定是锐化的,但与源图像相比,效果才会明显。您选择的半径取决于源图像的大小,但应至少相差几个像素。或者,您可以将半径设置为零,ImageMagick应为图像选择合适的值。

根据你想要通过锐化实现的目标,如果unsharpMaskImage对你来说总是过于微妙,那么你可能会更好地使用老式adaptiveSharpenImage

或者它可能只是在您正在使用的旧版ImageMagick上被破坏 - 您可以尝试使用上面的示例图像和设置。