ImageMagick:切割图片并转WebP格式仅生成单张图片问题
问题:Midjourney四格图分割为WebP格式时仅生成单张图片
我用脚本将Midjourney生成的四格布局图分割为4张独立图片,脚本如下:
splitName="${filename}-split.png" convert -crop 50%x50% $input $splitName
输入image.png时,能正常生成image-split-1.png、image-split-2.png、image-split-3.png、image-split-4.png这4张图片。
但将输出名称修改为WebP格式后:
splitName="${filename}-split.webp"
脚本虽能运行,但仅生成单张image-split.webp,其余3张图片缺失,请问这是什么原因?
原因分析
ImageMagick的convert命令处理不同图像格式的逻辑有差异:
- 输出PNG这类不支持多帧的格式时,
convert会自动在指定文件名后追加序列编号(-1、-2等),把分割后的每张图存成独立文件。 - 而WebP支持动画多帧,当你只指定单一WebP文件名时,
convert会默认把所有分割出的图像合并成一个多帧WebP文件——看起来是单张文件,但实际上它包含了4帧内容,并非缺失了其他图片。
解决方法
要生成独立的单帧WebP文件,需要在输出文件名中加入序列占位符,明确告诉convert要拆分保存而非合并。修改脚本的输出命名规则即可:
splitName="${filename}-split-%d.webp"
%d是序列占位符,会自动替换为从0开始的数字,最终生成image-split-0.webp到image-split-3.webp这4张独立文件。- 如果希望编号从1开始,可以添加
-scene 1参数调整起始编号:
convert -crop 50%x50% -scene 1 $input $splitName
这样就能得到image-split-1.webp到image-split-4.webp这4张符合预期的独立WebP图片。
内容的提问来源于stack exchange,提问作者Joshua Sullivan
相关产品推荐
相关产品推荐

