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; } } ?>