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
相关产品推荐
相关产品推荐

