想要渲染图像而不使用PHP GD库将其保存到磁盘

时间:2011-03-08 22:43:48

标签: php gd

您有以下功能

function renderBusinessCard($details){
        //Getting the template for the business card
        $filename = Templates::model()->getTemplateFileName($details['BusinessCards']['dp_id']);
        header("Content-type: image/jpeg");

        $image = $_SERVER['DOCUMENT_ROOT'].'resources/templates/'.$filename;


//        header("Content-Type: image/jpeg");
        //Getting the width and height of the image
        list($width,$height) = getimagesize($image);


//echo $width;die;
        //Creating a copy of a loaded image
        $create = imagecreatefromjpeg($image);


        //Creating a blank template to work from
        $template = imagecreatetruecolor($width,$height);
        imagecopyresized($template, $create, 0, 0, 0, 0, $width, $height, $width, $height);

        imagejpeg($template, null, 100);

    }

我想要实现的是在图像标签中显示图像,如下所示

<img src="<?php renderBusinessCard($details); ?>"

但不知何故,它总是将乱码代码渲染到屏幕而不是我想要的结果。这是可能吗?如果不使用单独的文件,我希望它保留在函数或方法中。

2 个答案:

答案 0 :(得分:6)

您需要在单独的资源中渲染图像。没有好的方法在HTML文档中添加图像数据。 (任何人都在考虑推荐data: URI:这是一个糟糕的主意。)

<img src="renderBusinessCard.php?param1=1&param2=2">

答案 1 :(得分:0)

如果$ details数组不是太大,那么将它保留在会话数据中可能会更好。 然后调用将调用脚本并关联正确的详细信息数据。