报错: Uncaught exception 'ImagickException' with message 'Unable to annotate p_w_picpath'
使用phpinfo 函数检查时,正常。但php代码调用时,出现如上报错,或者读取不了字体,去掉字体就出现上面的报错了。
原因:和 /usr/share/fonts 下字体有关
字体目录 /usr/share/fonts
ImageMagick 配置字体 /usr/local/lib/ImageMagick-6.5.1/config/type-ghostscript.xml ,若系统在字体目录下只有 bitstream-vera ,导致type-ghostscript.xml 配置中获取字体路径没有
如:
<type name="AvantGarde-Book" fullname="AvantGarde Book" family="AvantGarde" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="a010013l.afm" glyphs="a010013l.pfb"/>
正常的应该是:
<type name="AvantGarde-Book" fullname="AvantGarde Book" family="AvantGarde" foundry="URW" weight="400" style="normal" stretch="normal" format="type1" metrics="/usr/share/fonts
/default/Type1/a010013l.afm" glyphs="/usr/share/fonts/default/Type1/a010013l.pfb"/>
解决方法:
1、安装系统原有字体相关包:yum -y install bitmap-fonts xorg-x11-fonts-Type1 libfontenc bitstream-vera-fonts xorg-x11-fonts-base xorg-x11-font-utils urw-fonts fontconfig libXfont libXfontcache chkfontpath
2、重新编译 ImageMagick 和 imagick 。