我希望能够从.PSD图像中选择哪些层被合并到最终的.JPG输出映像中。
我可以将图像中的所有层合并为:
$im = new Imagick('test.psd');
$im->flattenImages();
$im->setImageFormat('jpg');
$im->writeImage('test.jpg');然而,.psd包含大约10个层,我希望能够指定哪些特定的层应该合并在一起,以生成最终的映像。
例如,我只想合并层号3、5和10,或者层名为“红色”、“绿色”、“蓝色”。
发布于 2014-06-10 14:59:36
虽然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');发布于 2014-06-09 14:55:11
可以访问第三层
test.psd[3]只需试着:
$im = new Imagick(array('test.psd[3]', 'test.psd[5]', 'test.psd[10]'));https://stackoverflow.com/questions/24122802
复制相似问题