我的类文件中有一个函数可以将图像转换为灰度。我需要的是一种将转换后的图像存储在变量中的方法,这样如果用户信息而不是仅包含已转换图像的白页,它就可以显示在我的页面上。我将不胜感激任何建议。 这是代码:
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);
}
答案 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是否适合您的方案。这仅适用于您拥有非常小的图片,以及您不太可能多次提供服务的情况。