1

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

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

$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 模块的特殊方法吗?因为我没有找到一个我有点困惑。

任何帮助表示赞赏。提前致谢!

4

1 回答 1

0

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

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

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

于 2013-07-31T08:18:06.217 回答