<code> <?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;
}
function
imageout(){
$im
=
$this
->createimagesource();
$this
->setbackgroundcolor(
$im
);
$this
->set_code(
$im
);
$this
->setdistrubecode(
$im
);
ImageGIF(
$im
);
ImageDestroy(
$im
);
}
private
function
createimagesource(){
return
imagecreate(
$this
->width,
$this
->height);
}
private
function
setbackgroundcolor(
$im
){
$bgcolor
= ImageColorAllocate(
$im
, rand(200,255),rand(200,255),rand(200,255));
imagefill(
$im
,0,0,
$bgcolor
);
}
private
function
setdistrubecode(
$im
){
$count_h
=
$this
->height;
$cou
=
floor
(
$count_h
*2);
for
(
$i
=0;
$iwidth
);
$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
);
}
}
private
function
set_code(
$im
){
$width
=
$this
->width;
$counts
=
$this
->counts;
$height
=
$this
->height;
$scode
=
$this
->session;
$y
=
floor
(
$height
/2)+
floor
(
$height
/4);
$fontsize
=rand(30,35);
$fonturl
=
"./AdobeGothicStd-Bold.otf"
;
$counts
=
$this
->counts;
for
(
$i
=0;
$idistrubcode
;
$countdistrub
=
strlen
(
$originalcode
);
$_dscode
=
""
;
$counts
=
$this
->counts;
for
(
$j
=0;
$j
<?php
Header(
"Content-type:image/GIF"
);
class
images
extends
CI_Controller{
public
function
index(){
$this
->load->library(
'MY_Imagecode'
);
echo
$this
->MY_Imagecode->imageout();
}
}
</code>