如何用ImageMagick的convert命令保存终端输出为图片?遇@符号问题
解决ImageMagick convert命令生成图片带多余符号的问题
管道输入时图片出现@符号的解决办法
你用ip a | convert label:@- ip.png出现@符号,是因为label:@-的用法有误。ImageMagick里@-是用来从标准输入读取内容的标记,但label:参数的正确用法是把@-作为文本来源,不能直接拼接在label:后。
如果要处理多行的终端输出(比如ip a的结果),别用label:(它仅适合单行文本),换成支持多行的text:参数,命令改成:
ip a | convert -size 1000x -font "Ubuntu Mono" text:@- ip.png
要是你坚持用label:(比如内容是单行),调整命令让@-被正确识别:
ip a | convert -label "@-" null: ip.png
读取脚本文件时出现多余字符的问题
你执行convert label:test.sh- ip3.png时,ImageMagick会直接把test.sh-当成要显示的文本内容,所以才会出现该字符串。要读取test.sh文件内容生成图片,需要用@前缀指定文件名,正确命令是:
convert label:@test.sh ip3.png
如果脚本内容是多行,同样建议换成text:参数实现自动换行:
convert -size 1000x -font "Monospace" text:@test.sh ip3.png
小提示
- 加上
-size参数可以指定图片宽度,避免文本被过度压缩; - 使用等宽字体(如
Monospace、Ubuntu Mono)能让终端输出的排版更整齐; - 如果需要更还原终端样式的截图,也可以试试
ttyrec转格式后存成图片,或者直接用系统自带的截图工具截取终端窗口。
内容的提问来源于stack exchange,提问作者jerico235
相关产品推荐
相关产品推荐

