使用magick转换Base64文件报错的原因及解决咨询
ImageMagick 7转换Base64图片失败的解决办法
问题排查与修复步骤
- 清理Base64前缀:不少Base64文本会带
data:image/xxx;base64,开头的标识,在线转换器会自动忽略,但ImageMagick的inline:协议不认这个。先把前缀去掉:sed 's/^data:image\/[^;]*;base64,//' x.txt > clean_x.txt - 去除多余换行/空白:部分Base64文件会被自动换行(比如每行76字符),虽然在线工具能处理,但ImageMagick可能卡格式。把所有换行、空格删掉:
tr -d '\n\r ' < x.txt > clean_x.txt
正确转换命令
处理完纯净的Base64文件后,执行转换:
magick inline:`cat clean_x.txt` x.png
嫌生成中间文件麻烦的话,直接用管道一步到位:
sed 's/^data:image\/[^;]*;base64,//' x.txt | tr -d '\n\r ' | magick inline:- x.png
有效性验证
要是还报错,先确认Base64内容本身没问题:
sed 's/^data:image\/[^;]*;base64,//' x.txt | tr -d '\n\r ' | base64 -d > test.jpg
如果test.jpg能正常打开,说明内容没问题,再用ImageMagick转换就可以了。
内容的提问来源于stack exchange,提问作者royappa
相关产品推荐
相关产品推荐

