Bug #75656 [Com]: imagettfbbox fails to find my font

From: Date: Fri, 02 Nov 2018 10:58:57 +0000
Subject: Bug #75656 [Com]: imagettfbbox fails to find my font
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-217795@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75656&edit=1 ID: 75656 Comment by: drajuang at gmail dot com Reported by: momchil at bojinov dot info Summary: imagettfbbox fails to find my font Status: Open Type: Bug Package: GD related Operating System: Windows PHP Version: 7.1.12 Block user comment: N Private report: N New Comment: (My english is not well) I have expierenced this issue today, and I found a workaround. Description: ------------ 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. Conclusion: ------------ If: 'OS is Windows' && 'PHP 7.1+' && 'filepath contain non ASCII characters' Try: convert filepath string encoding before you pass to GD imageftbbox() and imagettftext(). Note: Maybe GD Library called a Windows File system API but that don't accept UTF8 encoding? Previous Comments: ------------------------------------------------------------------------ [2018-09-21 10:21:22] rolandshin at yahoo dot gr 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 ------------------------------------------------------------------------ [2018-07-23 14:09:44] Kagome at ese-protect dot de Hello, 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? ------------------------------------------------------------------------ [2018-04-03 22:01:40] cmb@php.net > 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[1] (even though open_basedir is empty); the NTS failure, however, by fontFetch() failing[2] (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). [1] <https://github.com/php/php-src/blob/PHP-7.1.16/ext/gd/gd.c#L3917> [2] <https://github.com/php/php-src/blob/PHP-7.1.16/ext/gd/libgd/gdft.c#L454> ------------------------------------------------------------------------ [2018-01-08 12:00:13] ab@php.net 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? Thanks. ------------------------------------------------------------------------ [2018-01-07 18:15:37] cmb@php.net Related To: Bug #75773 ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=75656 -- Edit this bug report at https://bugs.php.net/bug.php?id=75656&edit=1

« previous php.bugs (#217795) next »