You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP Imagick替换PSD文件图片失败求技术支援

用PHP Imagick替换PSD文件中指定图层图片的问题

我正在开发一个替换PSD文件中图片的工具,目前使用基于Imagick/ImageMagick扩展的PHP脚本。恳请有人指导如何用Imagick实现该功能,或提供替代方案。

当前问题是图片无法被替换,我尝试过setImage和addImage方法,在if语句内导出文件能看到新增图片,但最终输出未体现修改。

以下是我尝试的代码:

$src = Storage::path('file.psd');
$psd = new Imagick($src);

foreach ($psd as $index => $layer) {

    // 跳过第一个图层
    if (! $index) {
        continue;
    }

    $imageProperties = $layer->getImageProperties();
    $label = $imageProperties['label'] ?? '';

    if (str($label)->lower()->startsWith(['#'])) {
        $layer->removeImage();
        $layer->setImage(new Imagick(Storage::path('image.png')));

    }
}

$psd->mergeImageLayers(Imagick::LAYERMETHOD_MERGE);
$psd->setImageFormat('png');
$psd->writeImage(Storage::path('output.png'));
$psd->clear();
$psd->destroy();

内容的提问来源于stack exchange,提问作者platypusmaximus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 22:20:45