2016-02-03 18 views
1

我有一个php脚本从png图像生成captcha的问题。一切都很好,用ie和铬。在Firefox浏览器中测试脚本时出现问题。由php脚本生成的图像损坏或在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); 

} 

回答

0

解决方案是只添加 '齐平();'在函数结束时保存生成的图像。