使用 Imagick 设置颜色深度

Setting color depth with Imagick

我正在使用 Imagick 组装一堆 .tif。一切都很好,除了输出图像的颜色深度总是减少(输入为 16,输出为 1)。我在这个过程中使用了setImageDepth(),但看起来它根本没有效果。这是一个片段:

$imagick = new Imagick();
foreach ($_pile_of_tiles as $_index_to_append) {
    $_tmp_buffer = new Imagick();
    $_tmp_buffer->readImage($_index_to_append . ".tif");
    $_imagick->addImage($_tmp_buffer);
}
$_imagick->resetIterator();
$_appended_images = $_imagick->appendImages(true);
$_appended_images->setImageFormat("tiff");
$_appended_images->setImageDepth(16);
file_put_contents("output.tif", $_appended_images);

这给了我一个 1 位图像。我尝试使用命令行执行此操作,它工作正常 (-depth 16)。

有人遇到过类似的问题吗?

查看底层 ImageMagick 库的代码后,显然这可行:

$imagick = new Imagick();
$imagick->newPseudoImage(200, 200, 'xc:white');
$imagick->setType(\Imagick::IMGTYPE_TRUECOLOR);
$imagick->setImageFormat('tiff');
$imagick->setImageDepth(16);
$imagick->writeImage("./output.tif"); 

system("identify output.tif");

输出为:

output.tif TIFF 200x200 200x200+0+0 16-bit sRGB 241KB 0.000u 0:00.000

没有。这在 ImageMagick 文档的任何地方都没有记录。呜.