图像在php脚本生成的firefox中损坏或截断

时间:2016-02-03 08:42:59

标签: image firefox symfony-1.4 captcha

我有一个php脚本的问题,它从png图像生成验证码。 ie和chrome一切都没问题。在Firefox浏览器中测试脚本时出现问题。

我的代码:

 function executeGenerateCaptcha()
{
  header('Content-Type: image/jpg');
  // number of characters to type
  define('NB_CARACTERE', 6);
  $sImage = imagecreatefrompng(dirname(__FILE__) . '/../captcha/images/fond.png');
  $nCpt   = 0;

// possible characters for captcha
  $aChars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZ';

// string generation
  while ($nCpt < NB_CARACTERE)
  {
    $sCaractere         = $aChars{ mt_rand(0, strlen($aChars) - 1)};
    $aCaracteres[$nCpt] = $sCaractere;
    $nCpt++;
  }

  $sCode        = null;
  $iAbcisse     = 0;
  $iInclinaison = -20;

// characters generation on image
  foreach ($aCaracteres as $sCaractere)
  {
    $sCode .= $sCaractere;
    $color = imagecolorallocate($sImage, mt_rand(0, 253), mt_rand(0, 253), mt_rand(0, 253));
    imagettftext($sImage, 40, $iInclinaison, 0 + $iAbcisse, 45, $color, dirname(__FILE__) . '/../captcha/images/arial.ttf', $sCaractere);

    $iAbcisse     = $iAbcisse + 30;
    $iInclinaison = $iInclinaison - 12;
  }

  unset($sCaractere);
  unset($nCpt);
  unset($sCaractere);
  unset($aCaracteres);

  imagepng($sImage);

}

1 个答案:

答案 0 :(得分:0)

解决方案只是添加&#39; flush();&#39;在函数结束时保存生成的图像。