Bug #17924 Updated: String is missing when using functions like imageTTFtext

From: Date: Mon, 24 Jun 2002 07:54:30 +0000
Subject: Bug #17924 Updated: String is missing when using functions like imageTTFtext
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-11873@lists.php.net to get a copy of this message
ID: 17924 Updated by: mathias.grub@web.de Reported By: mathias.grub@web.de Status: Closed Bug Type: GD related Operating System: Windows 2000 pro PHP Version: 4.2.1 New Comment: OK, it seems to be a bug, unsolved until today. One possibility to handle it, is to run 2 php Versions (This config tipp runs with Win/Apache and PHP >4.2 configuered as the cgi AND not the module Version!): Copy your php directory (in most cases the cgi-bin in the Apache dir) to a new dir called php4 in the Apache dir. OK, the php.ini File MUST NOT be in in the Windoews directory, it has to be placed into the same dir of yyour php.exe, because we need two different php.ini files. Go on, edit the http.conf of the Apache like this: Below an existing line like similar to this ScriptAlias /cgi-bin/ "C:/Apache/cgi-bin/" add the line ScriptAlias /php4/ "C:/Apache/php4/" (the path to the second php installation) Then check all lines starting with AddType application/x-httpd-php if there is any .php4 extension to be found, delete it and add the line AddType application/x-httpd-php4 .php4 ATTENTION! If you're used to use .php4 files don't delete the above extension, but use another new application type, such as x-http-phpx .phpx Last line to add is below: Action application/x-httpd-php "/cgi-bin/php.exe" add: Action application/x-httpd-php4 "/php4/php.exe" Attention, the path listed has to be the same as the one of the Script-Alias. Now edit both php.ini files. The difference is set to the extensions. Wether the .php files has to use the php_gd2.dll, the php4 files should use the php_gd.dll!!! All done. The last thing is that you cannot use both in one file, the new and better gd2 functions like imagecopyresampled() and the text functions like imageTTFtext() until this bug is solved. But you can - with a little bit more amount of coding and files - use the best of all. Greetings, Mathias Previous Comments: ------------------------------------------------------------------------ [2002-06-23 06:27:22] mathias.grub@web.de Sorry, the link from mfischer goes to 4.30 dev, not to 4.03!!! ------------------------------------------------------------------------ [2002-06-23 06:23:14] mathias.grub@web.de thanks to mfischer, but the link doesn't change anything. Link goes to PHP 4.03. Difference in php_gd2.dll is now: GD Version: bundled (2.0 compatible) I've read that PHP is going to implement the graphic lib because of the bugs and changes in GD. But the problem is still their two lines below in the phpinfo() info: FreeType Linkage: with freetype If you use the gd1 extension, distributed together with the latest PHP V. Freetype Linkage is set to "with TTF library". So this seems to be the problem. Until there is no satisfying solution (and gd1 ability to copyresized with png or imagecreation with imagecreate() in comparison to imagecreatefromtruecolor isn't satisfying) I'm going on, looking if I can complie the latest gd 2.01 with the freetype 2 with "Freetype Linkage" set to "TTF library" instead of "with freetype". Unfortunately I have less knowledge in C/C++. So if there is anyone who can help me, I'd be very pleased!!!! Thanks for any help, Mathias ------------------------------------------------------------------------ [2002-06-22 12:45:12] mfischer@php.net Please try the recent snapshot from http://snaps.php.net/win32/php4-win32-latest.zip , I bet this is fixed. Reopen if it's not. ------------------------------------------------------------------------ [2002-06-22 12:41:01] mathias.grub@web.de When running PHP with GD > 2 and Freetype >= 2 all functions which use ttf fonts (different from the built-in fonts (1-5)) don't draw the requested text string on the image, eg: imageLoadFont($pathtofont)or die('damn, cannot loadit'); results always in the 'or die()' part. In any case. Independent on if you use doc-relative path, root-relative path or absolute path (including drive letter/ IP). The windows binary of PHP 4.06 comes with GD 1.64. And phpinfo() says for 'FreeType Linkage' TrueType Library. If this is so, the above and following problems don't appear and solved. But the PHP 4.10, 4.11, 4.12 Windows Distributions come with GD 2.0 or higher and obviously with freetype V.1, because the function imageFTtext() creates an error: Freetype 2 is required. OK, lets install PHP 4.21 to get Freetype 2 support. Well done, the error message when using imageTTFtext() or imageFTtext is gone, but the wanted string is left blank. Beside to the function above imageloadfont()or die(); which always ends in the or die part. I guess the trio PHP 4.2/GD2/Freetype2 is not able to write text with ttf fonts onto an image. Seems to be an (evil, bad) bug. Am I right? ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=17924&edit=1

« previous php.bugs (#11873) next »