Php verification code can be displayed, but it will not be displayed if placed above CI!

  question
<?  Php
 //application->libraries->MY_Imagecode.php
 class MY_Imagecode{
 private $width ;
 private $height;
 private $counts;
 private $distrubcode;
 private $fonturl;
 private $session;
 function __construct($width = 120,
 $height=30,
 $counts=5,
 $distrubcode="1235467890qwertyuipkjhgfdaszxcvbnm",
 $fonturl="http://localhost/xampp/jyz/public/AdobeGothicStd-Bold.otf"
 ){
 $this->width=$width;
 $this->height=$height;
 $this->counts=$counts;
 $this->distrubcode=$distrubcode;
 $this->fonturl=$fonturl;
 $this->session=$this->sessioncode();
 session_start();
 $_SESSION['code']=$this->session;
 bracket
 function imageout(){
 $im=$this->createimagesource();
 $this->setbackgroundcolor($im);
 $this->set_code($im);
 $this->setdistrubecode($im);
 ImageGIF($im);
 ImageDestroy($im);
 bracket
 private function createimagesource(){
 return imagecreate($this->width,$this->height);
 bracket
 private function setbackgroundcolor($im){
 $bgcolor = ImageColorAllocate($im, rand(200,255),rand(200,255),rand(200,255));
 imagefill($im,0,0,$bgcolor);
 bracket
 private function setdistrubecode($im){
 $count_h=$this->height;
 $cou=floor($count_h*2);
 for($i=0;  $i<$cou;  $i plus)
 $x=rand(0,$this->width);
 $y=rand(0,$this->height);
 $jiaodu=rand(0,360);
 $fontsize=rand(8,15);
 $fonturl=$this->fonturl;
 $originalcode = $this->distrubcode;
 $countdistrub = strlen($originalcode);
 $dscode = $originalcode[rand(0,$countdistrub-1)];
 $color = ImageColorAllocate($im, rand(40,140),rand(40,140),rand(40,140));
 imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$dscode);
 bracket
 bracket
 private function set_code($im){
 $width=$this->width;
 $counts=$this->counts;
 $height=$this->height;
 $scode=$this->session;
 $y=floor($height/2) plus floor($height/4);
 $fontsize=rand(30,35);
 $fonturl="./AdobeGothicStd-Bold.otf";
 $counts=$this->counts;
 for($i=0;  $i<$counts;  $i plus)
 $char=$scode[$i];
 $ x = floor ($ width/$ countries) * $ i plus 8;
 $jiaodu=rand(-20,30);
 $color = ImageColorAllocate($im,rand(0,50),rand(50,100),rand(100,140));
 imagettftext($im,$fontsize,$jiaodu,$x,$y,$color,$fonturl,$char);
 bracket
 bracket
 private function sessioncode(){
 $originalcode=$this->distrubcode;
 $countdistrub=strlen($originalcode);
 $_dscode="";
 $counts=$this->counts;
 for($j=0;  $j<$counts;  $j plus)
 $dscode=$originalcode[rand(0,$countdistrub-1)];
 $_dscode.=$dscode;
 bracket
 return $_dscode;
 bracket
 bracket
 ?  >
 <?  Php
 //application->Controllers->images.php
 Header("Content-type:image/GIF");
 class images extends CI_Controller{
 public function index(){
 $this->load->library('MY_Imagecode');
 echo $this->MY_Imagecode->imageout();
 bracket
 bracket

1. The way to call library in ci is

<?  Php
 //application->Controllers->images.php
 Header("Content-type:image/GIF");
 class images extends CI_Controller{
 public function index(){
 $this->load->library('MY_Imagecode');
 $imagecode = new MY_Imagecode();
 
 //or
 //$imagecode = null;
 //$this->load->library('MY_Imagecode', null, $imagecode);
 
 $imagecode->imageout();
 
 bracket
 bracket

2. the way to use session in ci is

$this->load->library('session');
 $this->session->set_userdata(array('code'=>$this->session));
 //session_start();
 //$_SESSION['code']=$this->session;