我试图使用此功能锐化我的图像,但它无法正常工作。无论我为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
作为可选的第三个参数,它没有任何区别。
答案 0 :(得分:0)
在某些情况下,adaptiveItextSharpen函数 真的 是微妙的。下面的图像是源,然后是由:
生成的锐化图像$radius = 10;
$sigma = 2;
$imagick->adaptiveSharpenImage($radius, $sigma);
即使在那些相对较大的值,图像肯定是锐化的,但与源图像相比,效果才会明显。您选择的半径取决于源图像的大小,但应至少相差几个像素。或者,您可以将半径设置为零,ImageMagick应为图像选择合适的值。
根据你想要通过锐化实现的目标,如果unsharpMaskImage
对你来说总是过于微妙,那么你可能会更好地使用老式adaptiveSharpenImage
。
或者它可能只是在您正在使用的旧版ImageMagick上被破坏 - 您可以尝试使用上面的示例图像和设置。