使用 ImageMagick 转换特殊字符
Converting special characters with ImageMagick
我正在使用 PowerShell 脚本将 Unicode 字符批量转换为 PNG 文件。参见 http://pastebin.com/aGJzk4Hh。
我发现要转换 "
字符必须使用指定标签:\"
.
其他特殊字符就没那么简单了。
C:\ImageMagick\convert.exe -background transparent -fill hsb(0,0,0) \
-font Arial -pointsize 18 -size 18x26 -gravity center label:"@" \
C:\Users\erics_000\Desktop\Output\Chars.png
convert.exe: UnableToAccessPath @ error/property.c/InterpretImageProperties/3330.
convert.exe: NoImagesDefined `C:\Users\erics_000\Desktop\Output\Chars.png' @ error/convert.c/ConvertImageCommand/3230.
以及:
C:\ImageMagick\convert.exe -background transparent -fill hsb(0,0,0) \
-font Arial -pointsize 18 -size 18x26 -gravity center label:"\" \
C:\Users\erics_000\Desktop\Output\CharsC.png
convert.exe: NoImagesDefined `label:" C:\Users\erics_000\Desktop\Output\CharsC.png' @ error/convert.c/ConvertImageCommand/3230.
对我来说问题很大。
我已经尝试了所有我知道如何通过 \
转义这些字符的方法,但是还没有任何方法被证明有效。我需要能够转换所有 Unicode 字符,包括 \
和 @
。
是否知道如何使用 ImageMagick 将这些文件转换为 PNG 文件?
第一个问题:您是否检查过您的 Arial 版本是否包含相关 Unicode 字符的字形?
好的,如果它也是关于 \
和 @
字符,那么 that 应该没有问题。这导致我...
第二个问题:你安装的是哪个版本的ImageMagick?你能报告convert -version
的结果吗?
这是 my 在 Mac OS X Mavericks 10.9 系统上使用 ImageMagick v6.9.0-0 的结果:
convert -background black -fill red -pointsize 96 label:' @ \ @ \ @ ' sample.png
和(注意开始和结束我的字符串的空白!):
convert -background transparent -fill hsb\(0,0,0\) -font Arial \
-pointsize 180 -size 190x210 -gravity center label:' @ ' \
-frame 1 \
sample2.png
如果您需要从由 Unicode 字符代码组成的输入中发出真正的 Unicode 字形,您可以借助 Perl 来完成。我猜Powershell也有这个方法,但我不熟悉它):
perl -e 'binmode(STDOUT, ":utf8"); \
print " Smiley: \x{263A} "' \
| convert -background black \
-fill red \
-pointsize 98 \
-font Menlo \
label:@- \
smiley.png
(注意:@-
语法只是告诉 convert 从标准输入中读取标签的输入字符串...)
我正在使用 PowerShell 脚本将 Unicode 字符批量转换为 PNG 文件。参见 http://pastebin.com/aGJzk4Hh。
我发现要转换 "
字符必须使用指定标签:\"
.
其他特殊字符就没那么简单了。
C:\ImageMagick\convert.exe -background transparent -fill hsb(0,0,0) \
-font Arial -pointsize 18 -size 18x26 -gravity center label:"@" \
C:\Users\erics_000\Desktop\Output\Chars.png
convert.exe: UnableToAccessPath @ error/property.c/InterpretImageProperties/3330.
convert.exe: NoImagesDefined `C:\Users\erics_000\Desktop\Output\Chars.png' @ error/convert.c/ConvertImageCommand/3230.
以及:
C:\ImageMagick\convert.exe -background transparent -fill hsb(0,0,0) \
-font Arial -pointsize 18 -size 18x26 -gravity center label:"\" \
C:\Users\erics_000\Desktop\Output\CharsC.png
convert.exe: NoImagesDefined `label:" C:\Users\erics_000\Desktop\Output\CharsC.png' @ error/convert.c/ConvertImageCommand/3230.
对我来说问题很大。
我已经尝试了所有我知道如何通过 \
转义这些字符的方法,但是还没有任何方法被证明有效。我需要能够转换所有 Unicode 字符,包括 \
和 @
。
是否知道如何使用 ImageMagick 将这些文件转换为 PNG 文件?
第一个问题:您是否检查过您的 Arial 版本是否包含相关 Unicode 字符的字形?
好的,如果它也是关于 \
和 @
字符,那么 that 应该没有问题。这导致我...
第二个问题:你安装的是哪个版本的ImageMagick?你能报告convert -version
的结果吗?
这是 my 在 Mac OS X Mavericks 10.9 系统上使用 ImageMagick v6.9.0-0 的结果:
convert -background black -fill red -pointsize 96 label:' @ \ @ \ @ ' sample.png
和(注意开始和结束我的字符串的空白!):
convert -background transparent -fill hsb\(0,0,0\) -font Arial \
-pointsize 180 -size 190x210 -gravity center label:' @ ' \
-frame 1 \
sample2.png
如果您需要从由 Unicode 字符代码组成的输入中发出真正的 Unicode 字形,您可以借助 Perl 来完成。我猜Powershell也有这个方法,但我不熟悉它):
perl -e 'binmode(STDOUT, ":utf8"); \
print " Smiley: \x{263A} "' \
| convert -background black \
-fill red \
-pointsize 98 \
-font Menlo \
label:@- \
smiley.png
(注意:@-
语法只是告诉 convert 从标准输入中读取标签的输入字符串...)