|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #43899 Problem in displaying right to left connected languages (like persian, arabic)
Submitted: 2008-01-20 12:28 UTC Modified: 2021-08-25 11:54 UTC
Avg. Score:4.5 ± 0.8
Reproduced:10 of 10 (100.0%)
Same Version:7 (70.0%)
Same OS:6 (60.0%)
From: mohamnag at gmail dot com Assigned:
Status: Open Package: GD related
PHP Version: 6 OS: *
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please — but make sure to vote on the bug!
Your email address:
Solve the problem:
9 + 13 = ?
Subscribe to this entry?

 [2008-01-20 12:28 UTC] mohamnag at gmail dot com
There is an issue displaying Persian characters in GD generated images.
In persian, characters are arranged right to left (I mean first char is the most right hand arranged one). In addition characters are connected. For example while ی and ک are being written when separated, they should be written یک when connected. So not only they should be arranged right to left but also the shape of characters change during connections.
However displaying text using GD don't arrange persian characters right to left nor connects them correctly.
Some persian developers have made a php function which corrects the problem here:
but I think it should be solved globally in the original lib.

Reproduce code:
header("Content-type: image/png");
//uncomment to correct issue:


$im = imagecreate(800, 40);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);

//uncomment to correct issue:
//$text = fagd($string,'fa');

$font = dirname(__FILE__).'/tahoma.ttf';

// Add the text
imagettftext($im, 20, 0, 20, 25, $black, $font,$text);


Expected result:
this is an image displaying the correct output resulting from passing the text to imagettftext(), after being parsed using the fagd() function (provided by persian developers to correct the issue):

Actual result:
this is an image displaying the problematic view resulting from direct input of persian text to imagettftext():


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2008-10-27 12:58 UTC]
Assigned to the GD maintainer.
 [2016-09-14 14:08 UTC]
-Status: Assigned +Status: Suspended -Type: Bug +Type: Feature/Change Request -Assigned To: pajoye +Assigned To: cmb
 [2016-09-14 14:08 UTC]
Indeed, libgd does not yet support complex text layout except in
master, but this is not a bug, but rather a missing feature.
Anyhow, I'm suspending this ticket until libgd actually releases
CTL support.
 [2017-08-16 16:28 UTC]
-Assigned To: cmb +Assigned To:
 [2021-08-25 11:54 UTC]
-Status: Suspended +Status: Open
 [2021-08-25 11:54 UTC]
CTL support is available as of GD 2.3.0, but that has not yet been
ported to the bundled GD.
PHP Copyright © 2001-2023 The PHP Group
All rights reserved.
Last updated: Mon Oct 02 01:01:25 2023 UTC