phpimagickgmagick

Does Gmagick have a method like Imagick::thresholdImage?


I'm trying to create a scripts with PHP's pecl module Gmagick to remove a somewhat white background from an image. On the command line I use the following two commands for imagemagick:

convert source.jpg \( +clone -fx 'p{0,0}' \) \
        -compose Difference -composite  \
        -modulate 100,0 -alpha off -threshold 10% source_mask.png

convert source.jpg source_mask.png \
        -alpha Off -compose CopyOpacity -composite \
        source_transparent.png

I already have been able to take the first few steps:

$source_gm = new Gmagick();
$source_gm->readImage($source_path);

$white_gm = new Gmagick();
$white_gm->newImage($source_gm->getImageWidth(), $source_gm->getImageHeight(), 'white', 'png');

$mask_image = $source_gm->compositeImage($white_gm, Gmagick::COMPOSITE_DIFFERENCE, 0, 0);
$mask_image->modulateImage(100, 0, 0);

The Gmagick module has some kind of constant which should be used for the threshold Gmagick::COMPOSITE_THRESHOLD. However, there is no hint on how to use it. Can someone help me with the threshold?

Thanks!


Solution

  • I found out that the thresholdImage function is not available in gmagick yet. The feature has been implemented in SVN, but didn't make it to a release yet.