使用 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 文档的任何地方都没有记录。呜.
我正在使用 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 文档的任何地方都没有记录。呜.