我正在使用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\40.png
convert.exe: UnableToAccessPath @ error/property.c/InterpretImageProperties/3330.
convert.exe: NoImagesDefined `C:\Users\erics_000\Desktop\Output\Chars\40.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\Chars\5C.png
convert.exe: NoImagesDefined `label:" C:\Users\erics_000\Desktop\Output\Chars\5C.png' @ error/convert.c/ConvertImageCommand/3230.
对我来说非常有问题。
我已经尝试了各种方式,我知道如何通过\
来逃避这些角色,但是事实证明没有任何效果。我需要能够转换所有包含的\
和@
的Unicode字符。
是否知道如何使用ImageMagick将它们转换为PNG文件?
答案 0 :(得分:3)
第一个问题:您是否检查过您的Arial版本是否包含相关Unicode字符的字形?
好的,如果它也是关于\
和@
个字符,那么 应该不会造成问题。这导致我......
第二个问题:您安装了哪个版本的ImageMagick?你能报告convert -version
的结果吗?
以下是Mac OS X Mavericks 10.9系统上ImageMagick v6.9.0-0的 my 结果:
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
(注意:@-
语法只是告诉转换为标准输入标签的读取输入字符串...)