Perl-CGI Image在浏览器中显示为二进制

时间:2013-07-31 08:02:39

标签: perl cgi

我正在编写一个小插件,它通过Perl GD生成一个图像并在浏览器中显示。到目前为止,一切都正常,除了图像以二进制字符流显示。 google这类问题相当烦人,因为我读到了暂时将文件保存到硬盘的问题,我很乐意避免这种情况。

这是我到目前为止的代码:

$image = $print->png; ## the image was created correctly, I was able to 
#view it if I saved it on the local drive

my $cgi = new CGI;

print $cgi -> header(),
  $cgi -> start_html(),
  $cgi -> h1('Bernd'),
  $cgi -> header(-type=>'image/png');
  binmode STDOUT;
  print $image;
print $cgi -> end_html();

我必须调用CGI模块的特殊方法吗?因为我找不到一个我有点困惑。

感谢任何帮助。 提前谢谢!

1 个答案:

答案 0 :(得分:0)

当它是PNG时,图像必须是单独的资源/ URL,由HTML img元素或类似元素指向,而不是嵌入到文档中的流文本。这些是HTML的基础知识,如果您不熟悉,请获取Web编程书。

将图像格式更改为内联SVG,或者重写程序以创建img元素,并创建图像HTTP响应的另一个程序。

可以将原始程序(HTML响应)与创建图像响应的程序结合起来,但我不建议新手使用。