2

大家好,我是新来的,我的英语不好,对不起。

我的imagettfstring起始位置有问题,阿拉伯语是从右到左的,所以我无法将阿拉伯语保持在自定义位置,例如距离右侧 50 像素。

试图用图像显示我的意思: 在此处输入图像描述

如果可能的话,我希望底部的红色文本从右开始,文本从左到右开始,有没有办法将黑线贴在白线上?我想当文本变大时与棕色箭头方向一致

我正在使用的代码:

<?php
    require_once("image.php");
    $image = new image;
    if (isset($_REQUEST["name"])) {
        $image -> createFromFile(1, "gbg.png");
        $c = $image -> arabttfBox(45, 0, "andlso.ttf", $_REQUEST["name"]);
        $image -> arabttfString(1, $c[0], "andlso.ttf", 45, "#F00", 0, 0 , 100);
        $image -> arabttfString(1, $_REQUEST["name"], "andlso.ttf", 45, "#F00",
                                0, 0 , 520);
        $image -> display(1, "png");
    } else {
        $image -> create("error", 400, 100, "#333");
        $image -> border("error", "#000", "3");
        $image -> string("error", "Post a name", 5, "#F00", 10, 10, true, true);
        $image -> display("error", "png");
    }
?>

图片: 在此处输入图像描述

如果您想复制阿拉伯文本:

سمر علي

如果你想让我上传字体,告诉我。

经过一番思考,我解决了它:

list($IW, $IH) = $this -> dimensions($ID);
list($FW, $FH) = $this -> arabttfBox($Size, $Angle, $Font, fagd($string));
return imagettftext($this -> image[$ID], $Size, $Angle, $IW-$FW-$X, $Y,
                    imagecolorallocate($this -> image[$ID], $R, $G, $B),
                    $Font, fagd($string));
4

1 回答 1

1

解决方案 :

list($IW, $IH) = $this -> dimensions($ID);
list($FW, $FH) = $this -> arabttfBox($Size, $Angle, $Font, fagd($string));
return imagettftext($this -> image[$ID], $Size, $Angle, $IW-$FW-$X, $Y,
                    imagecolorallocate($this -> image[$ID], $R, $G, $B),
                    $Font, fagd($string));

在此处输入图像描述

于 2013-07-30T03:52:08.087 回答