I'm using the PHP function imagettftext() to convert text into a GIF image. The text I am converting has Unicode characters including Japanese. Everything works fine on my local machine (Ubuntu 7.10), but on my webhost server, the Japanese characters are mangled. What could be causing the difference? Everything should be encoded as UTF-8.
Broken Image on webhost server: http://www.ibeni.net/flashcards/imagetest.php
Copy of correct image from my local machine: http://www.ibeni.net/flashcards/imagetest.php.gif
Copy of phpinfo() from my local machine: http://www.ibeni.net/flashcards/phpinfo.php.html
Copy of phpinfo() from my webhost server: http://example5.nfshost.com/phpinfo
Code:
mb_language('uni');
mb_internal_encoding('UTF-8');
header('Content-type: image/gif');
$text = '日本語';
$font = './Cyberbit.ttf';
// Create the image
$im = imagecreatetruecolor(160, 160);
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
// Create some colors
imagefilledrectangle($im, 0, 0, 159, 159, $white);
// Add the text
imagettftext($im, 12, 0, 20, 20, $black, $font, $text);
imagegif($im);
imagedestroy($im);
I had the same problem. Converting font from otf to ttf helped. You can use FontForge (available in standard repository) to convert.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With