使用gd库在php上居中图像

时间:2014-05-22 14:09:55

标签: php html

嘿伙计们我一直在做一些关于php的代码..但是它没有给我输出我预期的..代码是

html代码

<html>
    <body>
        <form action="images.php" method="post">
            Enter image Name :<input type="text" name="imagename">
            <br></br>
            <input type="submit" name="sumbit">
            <br></br>
        </form>
    </body>
</html>

在这个html代码中,用户可以输入他的名字,以便根据名称生成图像。

php代码

<?php
    $name = $_POST['imagename'];
    if($_POST['imagename'] != ''){
        header("Content-Type: image/png");
        $name = $_POST['imagename'];
        $im = @imagecreate(800,600);
        $background_color = imagecolorallocate($im, 0xFF, 0xCC, 0xDD);
        $text_color = imagecolorallocate($im, 133, 14, 91);
        imagestring($im, 5, 300, 300,  "$name", $text_color);
        imagepng($im);
        imagedestroy($im);
    }
    else echo "no image created";
?>

此php代码生成的图像与给定的名称相符..

使用这段代码可以很好地生成图像,但我需要的是创建的图像必须出现在浏览器的中心...我已经在html文件上使用<img src="file.php>进行了尝试。它没有用..

如果你们找到我的解决方案,那将非常有帮助。谢谢你提前

2 个答案:

答案 0 :(得分:1)

如果您想将图像置于浏览器中心,则需要html和css。

我建议您不要使用header("Content-Type: image/png");直接显示图像,而是将图像保存到文件中。

然后您的脚本可以输出html并将图像包含在图像标记中或作为背景图像。使用css可以轻松地在浏览器中居中显示图像。

答案 1 :(得分:0)

Here你会找到一个如何在手工制作的图像中居中文字的例子。引用该页面,你应该这样做:

 <?php
     $fw = imagefontwidth(5);     // width of a character
     $l = strlen("$name");        // number of characters
     $tw = $l * $fw;              // text width
     $iw = imagesx($im);          // image width, 800 for your case

     $xpos = ($iw - $tw) / 2;
     $ypos = 10;
     imagestring ($im, 5, $xpos, $ypos, "$name", $color);   

     //...
 ?>