PHPGD2如何在不修改标题的情况下显示飞行生成的图像?

PHPGD2如何在不修改标题的情况下显示飞行生成的图像?,php,wordpress,header,png,gd2,Php,Wordpress,Header,Png,Gd2,我在用我自己的签名生成器。如何在不修改标题的情况下在飞行生成的图像中显示?我需要知道它,因为我的网站(基于WordPress)已经发送了标题,我无法修改它。当然我可以修改主题,但我才刚刚开始使用PHP。如果我修改标题,一切正常,但当我想在中打开它时,不会生成图像。 我还有第二个问题:如何添加到我生成的任何扩展以在任何论坛上显示它(这是一个示例)-在本例中是png?我不想保存生成的图像,但若我必须保存后,图像必须删除 <?php if( ! empty($_GET['nick']) ){

我在用我自己的签名生成器。如何在不修改标题的情况下在飞行生成的图像中显示?我需要知道它,因为我的网站(基于WordPress)已经发送了标题,我无法修改它。当然我可以修改主题,但我才刚刚开始使用PHP。如果我修改标题,一切正常,但当我想在中打开它时,不会生成图像。 我还有第二个问题:如何添加到我生成的任何扩展以在任何论坛上显示它(这是一个示例)-在本例中是png?我不想保存生成的图像,但若我必须保存后,图像必须删除

<?php
if( ! empty($_GET['nick']) ){
    //default
    $nick = $_GET['nick'];
    if(empty($_GET['server']))
        $server = 'eu';
        else $server = $_GET['server'];
    if(empty($_GET['font']))
        $font = 'calibri';
        else $font = $_GET['font'];
    //generacja
    $szerokosc = 350;
    $wysokosc = 19;
    $rozmiar = 13;
    $ob = imagecreatetruecolor($szerokosc, $wysokosc);
    $czarny = imagecolorallocate($ob, 0, 0, 0);
    $bialy = imagecolorallocate($ob, 255, 255, 255);
    putenv('GDFONTPATH=/home/p221366/public_html/snippets/fonts');
    imagettftext($ob, $rozmiar, 0, ($szerokosc/2), (($wysokosc-$rozmiar)/2)+$rozmiar, $bialy, $font, $nick.' '.$server);
    Header('Content-type: image/png'); 
    imagepng($ob/*, $local*/);
    imagedestroy($ob);
} else {//bez arg
    if ( isset($_GET['nick']) )
        echo '<p color=#ff0000>Invalid nickname!</p>';
    echo '<form method=get>
        <table align="center" border=0>
            <tr>
                <td bgcolor=#aaaaaa align="right">Nick</td>
                <td bgcolor=#cccccc align="center"><input type="text" name="nick" size="15" /></td>
            </tr>
            <tr>
                <td bgcolor=#aaaaaa align="right">Server</td>
                <td bgcolor=#cccccc align="center">
                    <select name="server">
                        <option value="eu">European</option>
                        <option value="ru">Russian</option>
                        <option value="com">American</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td bgcolor=#aaaaaa align="right">Font</td>
                <td bgcolor=#cccccc align="center">
                    <select name="font">
                        <option value="arial">Arial</option>
                        <option value="calibri">Calibri</option>
                        <option value="consola">Consolas</option>
                        <option value="courier">Courier New</option>
                        <option value="segoe">Segoe Script</option>
                        <option value="verdana">Verdana</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="Submit" /></td>
            </tr>
        </table>
    </form>';
}

图像是在HTML页面的单独请求中请求的。如果要动态创建图像,则不能在发送HTML页面本身的同一请求中将图像发送到浏览器。您必须生成包含将生成图像的脚本URL的适当标记

请注意,图像脚本将产生某种负载,因此,除非图像必须是超级动态的,否则请考虑将图像存储在永久位置,并在以后的任何请求中读取此文件

这个规则只有一个例外:如果您使用“data:”伪协议,那么您可以将图像数据直接包含在这个伪协议中,只有这样您才能将图像数据包含在HTML中。考虑到,由于图像数据必须与通常的URL约定兼容,所以必须是BASE64编码的,这大大增加了传输的数据量。此外,这样的URL不能缓存在浏览器中,因为如果浏览器还没有缓存条目,它们必须完全存在于每个图像标记中

因此,基本上,除了需要浏览器的支持外,数据URL应该只用于非常小的图像,如著名的“透明gif像素”,因为在这种情况下,为单独的图像请求添加HTTP开销会导致43字节的图像数据,这是非常大的(每个请求大约1KB)