2011-03-27 17 views
1

我正在使用OpenWRT的嵌入式设备上进行开发。每当我尝试使用fswebcam从我的/ dev/video0中捕获图像并且想要为图像添加一些文本(--info switch)时,我就会遇到这个错误。fswebcam:无法加载字体'luxisr':libgd未使用FreeType字体支持生成

所以标准字体'luxisr'不起作用。我试过提供我自己的.ttf字体。同样的结果。有没有一个字体,fswebcam将能够使用,而无需更改我当前的安装,即当前的libgd构建?我在考虑在libgd中包含freetype字体支持,重建和重新安装将是不平凡的(为什么他们默认情况下不启用它)。

感谢有这方面的帮助...

UPDATE [2011年3月31日]:我提出了这个问题鹭弘,fswebcam的作者。今天早上他让我知道:

fswebcam现在只能使用TTF字体,并且依赖于libgd中的freetype支持才能呈现它们。有两种选择:

  1. 重建带有freetype支持的libgd。我不熟悉OpenWRT构建系统,但这可能是最简单的选择。 Freetype似乎已经打包了,所以它不应该是痛苦。

  2. libgd也有一个简单的位图字体内置。如果没有检测到freetype支持,我可以让fswebcam回落,但它看起来不会那么好。

-Phil

所以我要前进,将非常具有RE /交叉编译的libgd对于FreeType支持。

+0

显然,我做的事情很不得人心。 :( – 2011-03-30 13:01:30

回答

3

你可以做的是:

  • 添加libfreetype建立为.config
  • 变化[buildroot_DIR]/package/feeds/packages/gd/Makefile

,并设置线--without-freetype--with-freetype=$(STAGING_DIR)/usr

  • (重新)构建libgd和libfreetype包和以上日期OpenWrt系统
  • 然后获得所需的ttf的副本(例如, Ubuntu的/usr/share/fonts/truetype/freefont/FreeSans.ttf)

  • 出口GDFONTPATH

  • 集fswebcam.config所需的字体
0

我有完全相同的问题。就我而言,fswebcam依赖于libgd库,它使用$ GDFONTPATH环境变量来定位字体。在我的环境中(Ubuntu 11.04),这样的变量没有设置。

发出命令行上的strace的

$ strace fswebcam --font Arial:12 --save /tmp/test/test.jpg 

在下面的输出导致

访问( “/ USR/X11R6/LIB/X11 /字体/的TrueType/ARIAL.TTF”, R_OK)= -1 ENOENT(没有这样的文件或目录)

...

访问( “在/ usr/X11R6/lib目录/ X11 /字体/ TTF/ARIAL.TTF”,R_OK)= -1 ENO ENT(没有这样的文件或目录)

...

这让我思考,有一些问题字形查找。

设置GDFONTPATH解决了这个问题。举例来说,我已经使用了以下

$ export GDFONTPATH=~/.fonts/ 

使用(或任何其他字体)

$ locate Arial.ttf 

为了让您的字体目录,这取决于你的操作系统(在/ usr /本地/共享/字体不同而变/ truetype,/ usr/share/fonts/truetype,...)。你的米勒可能会有所不同。

我敢肯定,可以使用更清洁的东西,但这个解决方案可以解决问题。希望这个帮助。

0

我发现这个问题,在谷歌与同样的错误。 只是在Debian的信息:

apt-get install ttf-xfree86-nonfree

,并加入到fswebcam.conf:

font /usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisr.ttf

和运行

fswebcam --config /etc/fswebcam.conf