如何创建宽度和高度未知的图像?

时间:2013-07-08 13:03:58

标签: php php-gd

我想从字符串创建一个图像,并且能够将此图像用作我正在生成的pdf的背景。

这几乎不是问题。我希望生成的图像是一个完整尺寸的图像,我知道有两个选择:

首先:假设图像具有固定大小并找到说明名称必须是全尺寸的方法(创建的图像是从图像的最左下方开始旋转45°的文本)。

第二:假设图像具有不同的大小,具体取决于名称使用的大小。

我不知道自己是否清楚,但如果有人有任何想法,请告诉我!

PS:这是我目前的代码:

    // Création de l'image
    $im = imagecreatetruecolor();

    // Création de quelques couleurs
    $white = imagecolorallocate($im, 255, 255, 255);
    $grey = imagecolorallocate($im, 240, 240, 240);
    $black = imagecolorallocate($im, 0, 0, 0);
    imagefilledrectangle($im, 0, 0, 400, 500, $white);

    // Le texte à dessiner
    $text = $this->user->data->display_name;

    // Définition de la variable d'environnement pour GD
    putenv('GDFONTPATH=' . realpath('.'));
    // Remplacez le chemin par votre propre chemin de police
    $font = 'arial.ttf';


    // Ajout du texte
    imagettftext($im, 100, 45, 100, 500, $grey, $font, $text);

    // Utiliser imagepng() donnera un texte plus claire,
    // comparé à l'utilisation de la fonction imagejpeg()
    $this->watermark = 'watermark/'.date('Y-m-d-H-i-s').'.png';
    imagepng($im, $this->watermark);
    imagedestroy($im);

1 个答案:

答案 0 :(得分:1)

如果您知道要用于从文本创建图像的字体,则可以使用imagettfbbox()确定水印大小,然后使用imagecreatetruecolor()生成图像。

请参阅http://www.php.net/manual/en/function.imagettfbbox.php