如何在php中发送create gif?

时间:2012-12-14 02:44:04

标签: php image

我有一个接收id并发回图片的协议。现在我有问题如何发送只是创建.gif?请在这里查看我的代码

if($id!="")
    {
        ........

        $ext = substr( $picturename, strrpos($picturename, '.')+1 );
        switch($ext)
        {
            case 'jpg':
                $ext = 'jpeg';
                break;
            case 'jpeg':
                $ext = 'jpeg';
                break;
            case 'png':
                $ext = 'png';
                break;
            case 'gif':
                $ext = 'gif';
                break;
        }

        header('Content-Description: File Transfer');
        header('Content-Type: image/'.$ext);

        $file = "./images/".$picturename;
        readfile($file);
            //this work 

    }
    else
    {
        // Create a 1x1 image
        $im = imagecreatetruecolor(55, 30);
        $trans = imagecolorallocate($im, 0, 0, 0);
        // Make the background transparent
        imagecolortransparent($im, $trans);

        header('HTTP/1.1 403 Forbidden');
        //How can I send .gif back with header ??
    } 

3 个答案:

答案 0 :(得分:1)

您可以设置多个标题并以相同方式输出图像。附件是生成1x1像素的代码。

....
header('HTTP/1.1 403 Forbidden');
header('Content-Type: image/gif');
// output a 1x1 pixel
echo base64_decode("R0lGODdhAQABAIAAAPxqbAAAACwAAAAAAQABAAACAkQBADs=");

答案 1 :(得分:0)

输出imagegif($im);。设置403标题没有任何特殊之处,因此您可以输出图像,这就是将要接收的内容。

答案 2 :(得分:0)

如果您不需要在图像中动态包含任何内容(例如文本),您可以使用默认的1x1图像而不是使用imagecreate函数...?

至于403标题,我不确定浏览器是否会显示图像,如果它认为这是来自服务器的错误响应 - 那么你可能会得到破碎的图像。