我有一个使用 GD2 创建图像的 PHP 脚本。它使用 TrueTypeFont 文件通过 imagettftext
(和 imagettfbbox
)在图像中生成文本。
这个脚本可以在 Windows 和 Linux 机器上运行,所以我决定从 Windows/Fonts 目录复制一个 TTF 文件到源代码中,否则我不知道去哪里找它。
我对这个解决方案一点也不满意,但我不知道有更好的解决方案。
但真正的问题是,在 Windows/Apache 上,字体文件在使用一次后会被锁定。解锁它的唯一方法是重新启动 Apache。锁定是一个问题,因为我无法在需要时删除文件,如果您使用的是版本系统,这尤其令人讨厌。
所以我的问题有 3 个解决方案:
- 有没有办法避免在 Windows/Apache 上锁定字体文件(在源代码/webroot 中)?
- 或者有没有办法避免复制字体文件并使用 native 可用的 TrueTypeFont? (尽可能独立于操作系统,可能的主机是 Windows 和 Linux - Mac,不是那么多)
- 或者有没有一种方法可以避免使用 TrueTypeFont 并仍然使用 PHP GD2 获得漂亮的(别名)文本?
--
GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.1.9
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
最佳答案
我在 GD 上也遇到过这样的问题,但是在 Debian 发行版上。我发现了两个可能导致 wamp 解决方案的解决方案:
a- 从 dotdeb.org libgd i/o native php GD 库安装捆绑图形库并使用 with-freetype 选项重新编译源代码,
或
b- 安装 imagick 而不是 GD
我在 debian 发行版上成功应用了解决方案“a”。
以下是我当时使用的一些链接:
imagick on wamp
howtoforge
drupal
libgd
boutell
关于php - Windows/Apache 上的 GD2 字体锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6309567/