如何使用Imagick :: quantizeImage将300,000彩色PNG图像减少到100,000彩色?

时间:2019-04-12 11:18:22

标签: php imagemagick

我尝试使用Imagick::quantizeImage将300,000彩色PNG图像减少到100,000,但是变成大约65,000彩色。 您不能获得超过65,000种颜色吗?

PHP版本:7.1.27 imagick模块版本:3.4.3

参考:https://www.php.net/manual/en/imagick.quantizeimage.php

我尝试将$colorspace$treedepth的各种值作为参数,但最多只能有65,000种颜色。

$img = new \Imagick('/path/to/300000-colors-image.png');
$img->quantizeImage(100000, \Imagick::COLORSPACE_SRGB, 0, false, false);
$img->writeImage('/path/to/result.png');
$img->clear();
$img->destroy();
// Confirm the result
$img = new \Imagick('/path/to/result.png');

// Expected: 100,000
// Actual: 65,000
echo $img->getImageColors(); 

$img->clear();
$img->destroy();