PHP 将 psd 转换为 jpg,选择图像图层

2024-02-05

我希望能够选择将 .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(使用前将#替换为@)

PHP 将 psd 转换为 jpg,选择图像图层 的相关文章

随机推荐