如何使用ImageMagick批量为多张图片添加Logo?
批量用ImageMagick给图片加Logo的正确姿势
单张图片添加Logo的命令是可行的:
magick background.jpg logo.jpg -composite output.jpg
你尝试的批量命令只生成了一个output0.png,核心问题在于**output%d.png是ImageMagick的序列输出语法**——它会把所有合成结果打包成一个序列文件,而非为每张源图单独生成独立的输出文件。
正确的批量处理命令
要为每个源文件生成带Logo的独立新文件,直接基于原文件名构建输出路径即可,比如给原文件名添加_logo后缀:
gci -recurse -file | %{ magick $_.FullName ..\logo.png -composite "$($_.DirectoryName)\$($_.BaseName)_logo$($_.Extension)" }
如果需要把所有带Logo的输出文件统一放到上级目录,可修改为:
gci -recurse -file | %{ magick $_.FullName ..\logo.png -composite "..\$($_.BaseName)_logo$($_.Extension)" }
之前的Copy-Item命令能正常工作,是因为它对每个文件单独执行复制操作,不存在ImageMagick这种序列输出的语法干扰。
内容的提问来源于stack exchange,提问作者Ooker
相关产品推荐
相关产品推荐

