<?php
Class Image{
private
$img
;
public
$width
= 85;
public
$height
= 25;
public
$code
;
public
$code_len
= 4;
public
$code_str
=
"329832983DSDSKDSLKQWEWQ2lkfDSFSDjfdsfdsjwlkfj93290KFDSKJFDSOIDSLK"
;
public
$bg_color
=
'#DCDCDC'
;
public
$font_size
= 16;
public
$font
=
'font.ttf'
;
public
$font_color
=
'#000000'
;
public
function
create_code(){
$code
=
''
;
for
(
$i
=0;
$i
<
$this
->code_len;
$i
++ ){
$code
.=
$this
->code_str[mt_rand(0,
strlen
(
$this
->code_str)-1)];
}
return
$this
->code =
$code
;
}
public
function
getImage(){
$w
=
$this
->width;
$h
=
$this
->height;
$bg_color
=
$this
->bg_color;
$img
= imagecreatetruecolor(
$w
,
$h
);
$bg_color
= imagecolorallocate(
$img
,
hexdec(
substr
(
$bg_color
, 1,2)), hexdec(
substr
(
$bg_color
, 3,2)), hexdec(
substr
(
$bg_color
, 5,2)));
imagefill(
$img
, 0, 0,
$bg_color
);
$this
->img =
$img
;
$this
->create_font();
$this
->create_pix();
$this
->show_code();
}
public
function
create_font(){
$this
->create_code();
$color
=
$this
->font_color;
$font_color
= imagecolorallocate(
$this
->img, hexdec(
substr
(
$color
,1,2)), hexdec(
substr
(
$color
, 3,2)), hexdec(
substr
(
$color
,5,2)));
$x
=
$this
->width/
$this
->code_len;
for
(
$i
=0;
$i
<
$this
->code_len;
$i
++ ){
$txt_color
= imagecolorallocate(
$this
->img, mt_rand(0,100), mt_rand(0, 150), mt_rand(0, 200));
imagettftext(
$this
->img,
$this
->font_size, mt_rand(-30, 30),
$x
*
$i
+mt_rand(3, 6), mt_rand(
$this
->height/1.2,
$this
->height),
$txt_color
,
$this
->font ,
$this
->code[
$i
]);
}
$this
->font_color =
$font_color
;
}
public
function
create_pix(){
$pix_color
=
$this
->font_color;
for
(
$i
=0;
$i
<100;
$i
++){
imagesetpixel(
$this
->img, mt_rand(0,
$this
->width),mt_rand(0,
$this
->height),
$pix_color
);
}
for
(
$j
=0;
$j
<4;
$j
++){
imagesetthickness(
$this
->img, mt_rand(1, 2));
imageline(
$this
->img, mt_rand(0,
$this
->width), mt_rand(0,
$this
->height), mt_rand(0,
$this
->width), mt_rand(0,
$this
->height),
$pix_color
);
}
}
public
function
getCode(){
return
strtoupper
(
$this
->code);
}
private
function
show_code(){
header(
"Content-type:image/png"
);
imagepng(
$this
->img);
imagedestroy(
$this
->img);
}
}