ImageMagick错误:无法读取字体“(null)”: “(null)”

12

在我的生产服务器上(运行ImageMagick,Rmagick等的Ubuntu),我一直在遇到这个错误。

从谷歌搜索中得知,似乎无法找到正确的字体,并且需要在

中正确设置。
sudo nano /usr/lib/ImageMagick-6.3.7/config/type-ghostscript.xml

当我打开这个文件时,它列出了此目录中的一堆字体

/usr/share/fonts/type1/gsfonts/

它们都存在。我尝试更改那些字体的所有者和权限,但似乎没有帮助。

有人遇到过这种情况并能够解决吗?谢谢!


虽然这与问题无关,但既然它是谷歌搜索结果,那就说一下吧。如果你正在使用其中一个命令行工具,例如convertcomposite,并且被告知找不到字体,请尝试指定字体的完整路径,例如-font /usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf - Roman Starkov
4个回答

23

我对MacOS Yosemite的解决方案:

$brew install gs

问题已解决(对我来说)。


在2018年使用Docker时遇到此问题的任何人:请确保您的Dockerfile中有“ghostscript”(无论是在安装ImageMagick之前还是在使用rmagick之前进行Gem安装)。这应该可以解决您Docker容器中的此错误。 - Dave Collins

10

终于在数月后解决了这个问题!

答案在这里:http://rubyforge.org/forum/forum.php?thread_id=8742&forum_id=4402

必须使用带有“--with-gs-font-dir=/where/your/gs/fonts/live”标志编译imagemagick

我使用"locate .pfb"命令查找它们的位置。对于我来说,在Ubuntu上是"--with-gs-font-dir=/usr/share/fonts/type1/gsfonts"

完整步骤如下。请注意,由于另一个奇怪的错误(在此处描述),我还必须使用“–disable-openmp”标志:http://computerplumber.com/2009/01/installing-rmagick-28-gem-on-hardy/

# remove in case you already installed imagemagick from apt-get
sudo apt-get remove imagemagick
sudo apt-get install libperl-dev gcc libjpeg62-dev libbz2-dev libtiff4-dev libwmf-dev libz-dev libpng12-dev libx11-dev libxt-dev libxext-dev libxml2-dev libfreetype6-dev liblcms1-dev libexif-dev perl libjasper-dev libltdl3-dev graphviz gs-gpl pkg-config

#get image magick from source and compile it
cd ~/sources
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
tar xvfz ImageMagick.tar.gz
cd ImageMagick-6.5.4-2
./configure --disable-openmp --with-gs-font-dir=/usr/share/fonts/type1/gsfonts
make
sudo make install

#reinstall rmagick gem
sudo gem uninstall rmagick
sudo gem install rmagick

由于这个问题和其他很多错误,这可能是我人生中遇到的最糟糕的安装经历。对ImageMagick和RMagick感到羞耻。


我使用Mountain Lion系统,但是“locate .pfb”没有返回任何结果。有什么想法吗? - Agis
1
Mountain Lion缺少ghostscript。https://dev59.com/5GYr5IYBdhLWcg3wH2zK - stevendaniels

3
尝试这个:http://rmagick.rubyforge.org/install-faq.html#fonts RMagick完全依赖ImageMagick进行字体管理。问题可能出在ImageMagick的配置上。要查看ImageMagick的字体配置,请使用以下命令:
 convert -list font

输出将显示ImageMagick知道使用的字体。该列表可能不包括安装在您系统上的每个字体!

查找以“Glyphs:”开头的行。这些是您可以在当前的RMagick安装/配置中使用的字体。


是的,我也经历了这个问题......可能是我缺少一些先决条件,比如freetype?不确定。我尝试从源代码安装freetype,但我遇到了许多错误我无法解决。 我在Ubuntu上看到的安装指南似乎表明如果你只是通过apt-get和gem安装就不需要这些步骤。感谢您关注此事。 - Brian Armstrong
1
这是一个损坏的链接。 - Raj

2

1
这在我使用已安装imagemagic的brew的OS X Mavericks上运行良好。 - SteveRawlinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接