PHP文本图像 - 文本未显示在保存的图像上

时间:2013-04-26 12:20:12

标签: php image

我有这个代码工作,它将文本放在PHP中的图像上,但是当我将生成的图像保存到我的计算机上时,只显示图像而文本没有。

以下是我正在使用的代码:

<?php
header("Content-type: image/png");
    $imgPath = 'template4.png';
    $image = imagecreatefrompng($imgPath);
    $color = imagecolorallocate($image, 255, 0, 0);

error_reporting(0);
if(isset($_POST['submit']))  

{
    $GT = $_POST['GT'];


    $Gamertag = preg_replace('/ /', "+", $GT);



    $content = file_get_contents("http://www.ea.com/uk/football/profile/{$Gamertag}/360");


    if ($content == false) {
        echo "Cant find this Gamertag";
        exit(); 
    }


    // Titles Won

    preg_match('#<div class="stat">
                Titles Won                <span>([0-9\.]*)<span class="sprite13 goalImage cup"></span></span>#', $content, $titleswon);
}


$string = $titleswon[1];
$fontSize = 3;
$x = 5;
$y = 5;
imagestring($image, $fontSize, $x, $y, $string, $color);
imagepng($image);
?>

如果我只是将$ string设置为$ string ='hello';单词hello在保存时会保留,但因为我使用preg_match来获取值以打印到图像上,当我保存它时文本不会显示。

任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

正如评论中所提到的,这是正则表达式问题,而不是文字到图像问题。

首先,你应该检查preg_match对boolean false的结果,看看匹配是否成功。 使用\s+\s*替换模式中的任何空格 至少做var_dump以查看匹配的结果。

答案 1 :(得分:1)

使用以下方式直接保存图像:

imagepng($Image, The path to save the file to.)