|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2002-06-24 16:03 UTC] dk at webcluster dot at
Hello,
I want to output the webdings.ttf font using freetype and gd.
Unfortunately I only get rectangular symbols back.
I discusse the issue inside the freetype mailing list and they told me that
"FreeType2 selects a Unicode charmap as default charmap for a font if available. Webdings.ttf does not have a Unicode charmap."
They thought that it could be a bug in gd and supplied a patch for gdlib.
_-_-_quote_-_-_
----8<----
for (n = 0; n < a->face->num_charmaps; n++)
{
charmap = a->face->charmaps[n];
platform = charmap->platform_id;
encoding = charmap->encoding_id;
if ((platform == 3 && encoding == 1) /* Windows Unicode */
|| (platform == 3 && encoding == 0) /* Windows Symbol */
|| (platform == 2 && encoding == 1) /* ISO Unicode */
|| (platform == 0))
{ /* Apple Unicode */
a->have_char_map_unicode = 1;
found = charmap;
----8<----
So it would work if GD would not forget to tell FreeType2 to use the
charmap it found... :
----8<----
--- gd-2.0.1/gdft.c.ori Tue Apr 3 20:44:42 2001
+++ gd-2.0.1/gdft.c Mon Jun 24 16:25:35 2002
@@ -445,6 +445,12 @@
*error = "Unable to find a CharMap that I can handle";
return NULL;
}
+ err = FT_Set_Charmap (a->face, found);
+ if (err)
+ {
+ *error = "Could not set CharMap";
+ return NULL;
+ }
return (void *) a;
}
----8<----
_-_-_quote_-_-_
I applied it, but it still doesn't seem to work.
I'm sure that the right gd is linked (ldd).
I've seen examples with Zapf Dingbats and Webdings work with other languages, so I think it may be also a php issue.
Maybe you could point me on a solution.
Thanks in advance
Daniel Khan
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 20:00:01 2025 UTC |
<?PHP function hex2rgb($hex) { $c = array('R', 'G', 'B'); $i = 0; preg_replace('/([a-f0-9]{2})/ie', '$rgb[$c[$i++]] = hexdec("\1")', $hex); return $rgb; } $col = "FF0000"; $text = "Here comes the text!"; $rgb = hex2rgb($col); $fontsize = 18; $font="/some/dir/webdings.ttf"; $size=ImageTTFBBox($fontsize,0,$font,$text); $width = abs($size[2]); $height = abs($size[5]); Header ("Content-type: image/jpeg"); $im = ImageCreate ($width+11, $height+8); $bg = ImageColorAllocate ($im, 255, 255, 255); ImageColorTransparent($im, $bg); $main = ImageColorAllocate ($im, $rgb["R"], $rgb["G"], $rgb["B"]); $shadow = ImageColorAllocate ($im, 219, 219, 219); ImageTTFText($im,$fontsize,0,1,21,$shadow,$font,$text); ImageTTFText($im,$fontsize,0,0,20,$main,$font,$text); ImageGif ($im); ImageDestroy ($im); ?>