info();
$vitae['Experience'] = $Programmer->Experience();
$vitae['Introduction'] = $Programmer->Introduction();
$vitae['Item'] = $Programmer->Item();
new Img($vitae);
}
class Img{
const imgWidth = '1700';
const imgHeight = '1600';
const font_file = "c:\\WINDOWS\\Fonts\\simhei.ttf"; //LINUX自己换字体
function __construct($content){
$img = imagecreate(Img::imgWidth, Img::imgHeight);
imagecolorallocate($img, 255, 255, 255);
$color = imagecolorallocate($img,0,0,0);
$this->table($img , $color);
$this->photo($img , $color);
$this->title($img , $color);
$this->info($img , $content['Info'] , $color);
$this->Introduction($img , $content['Introduction'] , $color);
$this->Experience($img , $content['Experience'] , $color);
$this->Item($img , $content['Item'] , $color);
$this->wateryin($img , $color);
imagepng($img);
}
public function table($img , $color){
imageline($img , 300 , 50 , 300 , Img::imgHeight - 50 , $color); //左边界
imageline($img , Img::imgWidth - 300 , 50 , Img::imgWidth - 300 , Img::imgHeight - 50 , $color); //右边界
imageline($img , 300 , 50 , Img::imgWidth - 300 , 50 , $color); //上边界
imageline($img , 300 , Img::imgHeight - 50 , Img::imgWidth - 300 , Img::imgHeight - 50 , $color); //下边界
imageline($img , 300 , 130 , Img::imgWidth - 300 , 130 , $color); //标题
imageline($img , 300 , 190 , Img::imgWidth - 500 , 190 , $color); //第一行
imageline($img , 300 , 250 , Img::imgWidth - 500 , 250 , $color); //第二行
imageline($img , 300 , 310 , Img::imgWidth - 300 , 310 , $color); //第三行
imageline($img , 300 , 360 , Img::imgWidth - 300 , 360 , $color); //第三行
imageline($img , Img::imgWidth-500 , 130 , Img::imgWidth - 500 , 310 , $color); //photo
imageline($img , Img::imgWidth-1100 , 130 , Img::imgWidth - 1100 , 310 , $color); //竖线
imageline($img , Img::imgWidth-780 , 130 , Img::imgWidth - 780 , 310 , $color); //竖线
imageline($img , 300 , 710 , Img::imgWidth - 300 , 710 , $color); //第四行(介绍)
imageline($img , 300 , 760 , Img::imgWidth - 300 , 760 , $color); //第四行(介绍)
imageline($img , 300 , 1110 , Img::imgWidth - 300 , 1110 , $color); //第五行(介绍)
imageline($img , 300 , 1160 , Img::imgWidth - 300 , 1160 , $color); //第四行(介绍)
}
public function photo($img , $color){
imageellipse($img, 1260, 180, 60, 40,$color); //左眼
imageellipse($img, 1340, 180, 60, 40,$color); //右眼
imagearc($img, 1300, 180, 30, 20,30,150,$color); //眼镜
imagearc($img, 1350, 140, 80, 100,0,60,$color);
imagearc($img, 1235, 130, 50, 110,100,160,$color);
imagearc($img, 1300, 230, 100, 100, 20, 160,$color); //以下是嘴巴
imagearc($img, 1290, 240, 130, 20, 20, 125,$color);
imagerectangle($img, 1290, 250, 1280, 260,$color);
imagerectangle($img, 1305, 250, 1295, 260,$color);
imagerectangle($img, 1310, 250, 1320, 260,$color);
}
public function title($img , $color){
imagettftext($img, 20, 0, 780 ,100, $color, Img::font_file, '程序员简历');
imagettftext($img, 20, 0, 790 ,345, $color, Img::font_file, '工作经历');
imagettftext($img, 20, 0, 790 ,745, $color, Img::font_file, '项目经验');
imagettftext($img, 20, 0, 790 ,1145, $color, Img::font_file, '个人简介');
}
public function info($img , $info , $color){
foreach($info as $key=>$value){
switch ($key){
case "Name":
imagettftext($img, 15, 0, 350 ,170, $color, Img::font_file, "{$key}:{$value}"); //姓名
break;
case "Age":
imagettftext($img, 15, 0, 630 ,170, $color, Img::font_file, "{$key}:{$value}"); //年龄
break;
case "Gender":
imagettftext($img, 15, 0, 950 ,170, $color, Img::font_file, "{$key}:{$value}"); //性别
break;
case "EnglisNname":
imagettftext($img, 15, 0, 350 ,230, $color, Img::font_file, "{$key}:{$value}"); //English Name
break;
case "University":
imagettftext($img, 15, 0, 630 ,230, $color, Img::font_file, "{$key}:{$value}"); //毕业院校
break;
case "Major":
imagettftext($img, 15, 0, 950 ,230, $color, Img::font_file, "{$key}:{$value}"); //专业
break;
case "LivingPlace":
imagettftext($img, 15, 0, 350 ,290, $color, Img::font_file, "{$key}:{$value}"); //现居地
break;
case "Phone":
imagettftext($img, 15, 0, 630 ,290, $color, Img::font_file, "{$key}:{$value}"); //电话
break;
case "Email":
imagettftext($img, 15, 0, 950 ,290, $color, Img::font_file, "{$key}:{$value}"); //Email
break;
}
}
}
public function Introduction($img , $Introduction , $color){
$str = explode('' , $Introduction);
foreach($str as $key=>$value){
imagettftext($img, 14, 0, 350 ,1200+$a*35, $color, Img::font_file, $value);
$a++;
}
}
public function Experience($img , $Experience , $color){
foreach($Experience as $key=>$value){
imagettftext($img, 14, 0, 350 ,400+$a*35, $color, Img::font_file, $key);
imagettftext($img, 14, 0, 750 ,400+$a*35, $color, Img::font_file, $value);
$a++;
}
}
public function Item($img , $Item , $color){
$str = explode('' , $Item);
foreach($str as $key=>$value){
imagettftext($img, 14, 0, 350 ,800+$a*35, $color, Img::font_file, $value);
$a++;
}
}
public function wateryin($img , $color){
$str = 'by:hackpar';
imagettftext($img, 14, 0, 1450 ,1550, $color, Img::font_file, $str);
}
}
class Programmer{
const Name = 'ZJD';
const Gender = 'Male';
const Age = '21';
const Englishname = 'Hackpar';
const University = "";
const Major = 'Software';
const LivingPlace = "Xi'an";
const Phone = '';
const Email = 'hackpar@gmail.com';
public function info(){
$info = array(
'Name' => Programmer::Name,
'Gender' => Programmer::Gender,
'Age' => Programmer::Age,
'EnglisNname' => Programmer::Englishname,
'University' => Programmer::University,
'Major' => Programmer::Major,
'LivingPlace' => Programmer::LivingPlace,
'Phone' => Programmer::Phone,
'Email' => Programmer::Email,
);
return $info;
}
public function Experience(){
$exp = array();
$exp['2011-04 to 2011-10'] = '';
$exp['2012-02 to 2012-12'] = '';
$exp['2013-03 to 2013-06'] = '';
$exp['2013-07 to now'] = '';
return $exp;
}
public function Introduction(){
$int = '一个苦逼的PHP码农,没有Geek的技术,但是有一颗Geek的心.';
return $int;
}
public function Item(){
$item = '项目介绍';
return $item;
}
}
?>
登入後複製