使用ImageMagick转换特殊字符

时间:2015-07-10 22:17:14

标签: imagemagick imagemagick-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\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文件?

1 个答案:

答案 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

sample using '@' and <code>\</code>

和(注意空格开始和结束我的字符串!):

convert -background transparent -fill hsb\(0,0,0\) -font Arial \
        -pointsize 180 -size 190x210 -gravity center label:' @ ' \
        -frame 1 \
         sample2.png

enter image description here

如果需要从包含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

(注意:@-语法只是告诉转换为标准输入标签的读取输入字符串...)

smiley.png