ImageMagick转PNG时反斜杠无法显示的问题求助
ImageMagick命令无法生成反斜杠图片的原因与解决办法
问题原因
你的命令中反斜杠的转义逻辑错误,导致shell解析后,实际传递给ImageMagick的不是反斜杠字符。具体来说,'\''的写法会被shell解析为单引号,而非反斜杠——第一个单引号闭合前序字符串,\被用来转义后续的单引号,最终draw命令接收到的文本是单引号,自然不会显示反斜杠。
解决方法
以下是几种可行的修正命令:
方法1:双引号内转义反斜杠
在双引号包裹的draw参数中,用\\代表单个反斜杠(shell会将\\解析为\传递给ImageMagick):
magick -size 64x80 -font DejaVu-Sans-Mono-Bold canvas:none -pointsize 64 -gravity West -draw "text 0, 0 '\\'" backslash.png
方法2:单引号包裹draw内容
单引号内的字符不会被shell转义,因此可以直接在单引号中用"\\"表示反斜杠:
magick -size 64x80 -font DejaVu-Sans-Mono-Bold canvas:none -pointsize 64 -gravity West -draw 'text 0, 0 "\\"' backslash.png
方法3:使用ASCII八进制转义序列
直接用反斜杠的ASCII八进制码\5c,无需考虑shell转义:
magick -size 64x80 -font DejaVu-Sans-Mono-Bold canvas:none -pointsize 64 -gravity West -draw "text 0, 0 '\5c'" backslash.png
内容的提问来源于stack exchange,提问作者Cheesebellies
相关产品推荐
相关产品推荐

