我希望能够选择将 .PSD 图像中的哪些图层合并到最终的 .JPG 输出图像中。
我可以将图像中的所有图层合并为:
$im = new Imagick('test.psd');
$im->flattenImages();
$im->setImageFormat('jpg');
$im->writeImage('test.jpg');
然而 .psd 包含大约 10 个图层,我希望能够指定应将哪些特定图层合并在一起,以生成最终图像。
例如,我只想合并编号为 3、5 和 10 的图层或名称为“RED”、“GREEN”、“BLUE”的图层
虽然 hsz 的答案是正确的,并且是图像非常大时的最佳方法,但它确实需要您提前知道要合并哪些图层。
您可以使用以下方式以更编程的方式完成相同的操作setIteratorIndex
访问各个图层并将它们添加到输出图像中。
$imagick = new \Imagick(realpath("../images/LayerTest.psd"));
$output = new \Imagick();
$imagick->setIteratorIndex(1);
$output->addImage($imagick->getimage());
$imagick->setIteratorIndex(2);
$output->addImage($imagick->getimage());
$merged = @$output->flattenimages();
$merged->setImageFormat('jpg');
$merged->writeImage('test.jpg');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)