将转换后的图像存储在变量中并将其显示在我的网页中

时间:2011-08-25 17:54:48

标签: php

我的类文件中有一个函数可以将图像转换为灰度。我需要的是一种将转换后的图像存储在变量中的方法,这样如果用户信息而不是仅包含已转换图像的白页,它就可以显示在我的页面上。我将不胜感激任何建议。 这是代码:

function GoBlackWhite($pic){
    $file = "pictures/$pic";
    $im = imagecreatefromjpeg($file);
    $imgw = imagesx($im);
    $imgh = imagesy($im);
    for ($i=0; $i<$imgw; $i++){
        for ($j=0; $j<$imgh; $j++){
        // get the rgb value for current pixel
        $rgb = @imagecolorat($im, $i, $j);
        // extract each value for r, g, b
        $rr = ($rgb >> 16) & 0xFF;
        $gg = ($rgb >> 8) & 0xFF;
        $bb = $rgb & 0xFF;
        // get the Value from the RGB value
        $g = round(($rr + $gg + $bb) / 3);
        // grayscale values have r=g=b=g
        $val = imagecolorallocate($im, $g, $g, $g);
        // set the gray value
        imagesetpixel ($im, $i, $j, $val);
        }
    }
    header('Content-type: image/jpeg');
    imagejpeg($im);
}

4 个答案:

答案 0 :(得分:1)

您可以发送 html页面,图像,但不能同时发送两者。这是http协议的“限制”。如果您想在网站中添加图片,请使用<img> - 元素

<img src="/path/to/image.jpg" />

答案 1 :(得分:1)

通常,您需要两个脚本(一个用于HTML,一个用于Image数据)或一个脚本根据查询参数更改其行为。例如(这是一个基于查询参数更改的脚本):

<?php
if( isset($_REQUEST['pic']) )
{
    // Call your function and return bytes with content type header as above
    exit;
}
?>
<html>
<body>
The converted image:<br/>
<img src='<?php echo $PHP_SELF . "?pic=myimagefile.jpg";?>'/>
</body>
</html>

答案 2 :(得分:0)

创建一个php页面,它回流图像的字节,设置MIME类型,就像在你的例子中一样。然后<img src="/path/to/image.php" />

答案 3 :(得分:0)

或者,查看Data URI scheme是否适合您的方案。这仅适用于您拥有非常小的图片,以及您不太可能多次提供服务的情况。