go to bug id or search bugs for
I have a small repo here:
I tested all of the code with PHP 7.1.11 x64 TS on a Windows 10 x64 machine
and all was fine
I then updated the php distribution to 7.1.12 x64 TS and started getting warnings:
arning: imagettftext(): Could not find/open font in X:\SVN\External\pChart-dev\pChart\pDraw.php on line 1117
I can solve it by calling the function with realpath($ttfpath) instead
The process monitor says that it finds the font OK but then starts looking at the Windows fonts folder and fails because these fonts are not there
To induce it, download the release 2.2.0
please PHP distribution in the root folder and call any of the examples
Warning: imagettfbbox(): Could not find/open font in X:\SVN\External\pChart-dev\pChart\pDraw.php on line 4878
Warning: imagettftext(): Could not find/open font in X:\SVN\External\pChart-dev\pChart\pDraw.php on line 1117
Add a Patch
Add a Pull Request
This is a duplicate of bug #64823.
I had same problem
PHP Warning: imagettftext(): Could not find/open font in C:...
Script has not changed since Nov 2016
Font is in same folder as script
Reverted to 7.1.11 and all is working again.
Obviously, this is not a duplicate, since the error message is
different. And indeed, I can reproduce the broken behavior with
PHP 7.1.12 (nts), but not with PHP 7.1.11 (nts).
Well, the most trivial reproduce script:
var_dump((bool) imagettfbbox(12, 0, 'arial', 'foo'));
This is supposed to print
but may print
I have not been able to reproduce bool(false) with a self-built
PHP, and debugging with the official php-7.1.12-nts-Win32-VC14-x64
shows erratic behavior, so I'm at a loss.
Related To: Bug #75773
I was checking this and 7.1.12 NTS reproduces it with Christoph's code. However the current 7.1 tree doesn't reproduce it - same freetype version. Something must have changed. Could one please test a latest snapshot?
> Could one please test a latest snapshot?
I just tested with php-7.1-nts-windows-vc14-x64-r37e1d7c and
php-7.1-ts-windows-vc14-x64-r37e1d7c (renamed php.ini-development
to php.ini; uncommented extension_dir and extension=php_gd2.dll).
The imagettfbbox() call fails in both cases. However, the ZTS
version warns "Invalid font filename", and the NTS version "Could
not find/open font". The ZTS failure is obviously caused by a
failing open_basedir check (even though open_basedir is empty);
the NTS failure, however, by fontFetch() failing (which is not
a libfreetype issue).
Using the absolute path (C:/Windows/Fonts/arial.ttf) instead lets
the script succeed (both ZTS and NTS).
Anyhow, the ZTS failure has already been filed as
<https://bugs.php.net/64823>, so we should concentrate on the NTS
issue here (even though the OP mentions it happened on TS).
I expierenced today the same Problem.
I wanted to upgrade from PHP 7.1.11 to 7.2.8.
After I detected the same Problem as the OP I tested until i found a Version that worked.
It was Version 7.1.11 ...
Only to make it clear: It is the compiled TS-Version I used from windows.php.net
I'm using a Windows Server 2k12R2 and Apache 2.4.33 as Webserver.
Is there any timeline when this bug will be fixed?
I also experienced this problem when I changed to PHP 7.2.8 from PHP 5.6.
Using a visforms component for joomla.
"imagettftext(): Could not find/open font in D:\home\site\wwwroot\components\com_visforms\captcha\securimage.php on line 1211"
Modifying secure.php and calling the ttf file with realpath() also solved the problem for me
(My english is not well)
I have expierenced this issue today, and I found a workaround.
My OS is Windows 10 *Chinese Traditional* and Web Server is IIS, when I changed PHP version from v7.0.29 to v7.1.23, I got this warning:
Warning: imageftbbox(): Could not find/open font in D:\projects\中文路徑\vendor\dapphp\securimage\securimage.php on line 1952
If I switch back to PHP v7.0, no error happened.
My font real path ($ttfpath) is 'D:\projects\中文路徑\vendor\dapphp\securimage\AHGBold.ttf'.
I tried 'realpath($ttfpath)' but not working, finally I found a key point 'character encoding'.
So, I tried:
$ttfpath = 'D:\projects\中文路徑\vendor\dapphp\securimage\AHGBold.ttf';
$ttfpath = mb_convert_encoding($ttfpath, 'big5', 'utf-8');
It is working, no error happened.
'OS is Windows' && 'PHP 7.1+' && 'filepath contain non ASCII characters'
convert filepath string encoding before you pass to GD imageftbbox() and imagettftext().
Maybe GD Library called a Windows File system API but that don't accept UTF8 encoding?