Exibir imagem PNG como resposta ao pedido do jQuery AJAX

É possível exibir uma imagem retornada pela chamada do jQuery AJAX, no fluxo principal do seu HTML?

Eu tenho um script que desenha uma imagem com um cabeçalho (imagem / PNG). Quando eu simplesmente o chamo no navegador, a imagem é exibida.

Mas quando faço uma chamada AJAX com jQuery neste script, não consigo exibir uma imagem limpa, tenho algo com muitos símbolos estranhos. Este é o meu script que faz a imagem com um cabeçalho (imagem / PNG).

#!/usr/bin/perl 

use strict;
use CGI;
use Template;
use CGI::Carp qw(fatalsToBrowser);
use lib qw(lib);
use GD;

my $cgi    = new CGI;

my $id_projet            =  $cgi   -> param('id_projet') ;      # 

# Create a new image
my $image = new GD::Image(985,60) || die;
my $red =  $image->colorAllocate(255, 0, 0);
my $black =  $image->colorAllocate(0, 0, 0);

$image->rectangle(0,0,984,59,$black);
$image->string(gdSmallFont,2,10,"Hello $id_projet ",$black);
# Output the image to the browser

print $cgi -> header({-type => 'image/png',-expires => '1d'});

#binmode STDOUT;

print $image->png;

Então eu tenho meu script principal com uma chamada AJAX dentro:

  <script type="text/javascript" > 

  $(document).ready( function() { 

  $.ajax({
  type: "POST",
  url:'get_image_probes_via_ajax.pl',
  contentType: "image/png",
  data: "id_projet=[% visual.projet.id %]",
  success: function(data){
  $('.div_imagetranscrits').html('<img src="' + data + '" />'); },
 } );

 </script>  

No meu arquivo HTML eu tenho um div comclass="div_imagetranscrits" para ser preenchido com a minha imagem.

Eu não vejo o que estou fazendo errado. A outra solução é fazer com que o meu script escreva a imagem no disco e obtenha o caminho para incluir no src para exibi-lo. Mas eu estava pensando que era possível obter a imagem com um cabeçalho de imagem / PNG diretamente de uma solicitação AJAX.

questionAnswers(3)

yourAnswerToTheQuestion