2013-07-31 22 views
1

我正在編寫一個小插件,它通過Perl GD生成圖像並將其顯示在瀏覽器中。到目前爲止,一切正常,除了圖像以二進制字符流顯示。 谷歌這種問題相當討厭,因爲我讀了關於暫時將文件保存到硬盤,我很想避免這種情況。Perl-CGI圖像在瀏覽器中以二進制形式顯示

這是我到目前爲止的代碼:

$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模塊的特殊方法?因爲我沒有找到一個我有點困惑。

任何幫助表示讚賞。 在此先感謝!

回答

0

當它是PNG時,圖像必須是單獨的資源/ URL,由HTML img元素或類似物指向,而不是嵌入到文檔中的流文本。這些是HTML的基礎知識,如果你不熟悉Web編程書籍,請閱讀。

要麼將​​圖像格式更改爲內聯SVG,要麼重寫該程序,以便它創建一個img元素,並創建圖像HTTP響應的另一個程序。

可以將原始程序(HTML響應)與創建圖像響應的程序組合起來,但我不建議將此程序用於新手。

+0

這是錯誤的,這是可能的,如果你想PNG,甚至是強制性的。 – daxim

+0

它可以在HTML中使用PNG數據(通過使用'data:'URI),但我同意它不推薦給新手。但它從字面上確實提供了內聯圖像。 :-) –

相關問題