如何显示我从fread()获得的图像?

时间:2012-09-18 08:42:16

标签: php

  

可能重复:
  php: recreate and display an image from binary data

我想在我的页面中显示我从此代码中获得的图像:

$contents = fread($handle, filesize($filename));

如何显示?

2 个答案:

答案 0 :(得分:1)

您必须打印图像的内容并根据文件类型设置正确的标题。

示例:

<?php

$contents = fread($handle, filesize($filename));

header('Content-Type: image/jpeg');
echo $contents;

答案 1 :(得分:0)

如果您已经有一个输出HTML的文件,并且在该页面中您想要显示图像,则需要使用<img>标记。您可以调用另一个文件来执行其他海报建议输出内容的内容。但是您输出的Content-Type取决于图像MIME类型。如果它是PNG文件,那么您将使用不同的标头参数:

<?php

$contents = fread($handle, filesize($filename));

header('Content-Type: image/png'); // or image/gif, depending on what $filename is.
echo $contents;

您的另一个选择是使用data URI

以内联方式输出此图片

以下是一个例子:

<?php
// take note that this is for PNG files - just change it to JPG or GIF depending on whatever your image is
$filename = 'image.png';
echo 'The following image is a PNG file... <img src="data:image/png;base64,'.base64_encode(file_get_contents($filename)).'" />';
?>